<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span class="hs-comment">{-|
Module      : GHC.Hs.Utils
Description : Generic helpers for the HsSyn type.
Copyright   : (c) The University of Glasgow, 1992-2006

Here we collect a variety of helper functions that construct or
analyse HsSyn.  All these functions deal with generic HsSyn; functions
which deal with the instantiated versions are located elsewhere:

   Parameterised by          Module
   ----------------          -------------
   GhcPs/RdrName             GHC.Parser.PostProcess
   GhcRn/Name                GHC.Rename.*
   GhcTc/Id                  GHC.Tc.Utils.Zonk

The @mk*@ functions attempt to construct a not-completely-useless SrcSpan
from their components, compared with the @nl*@ functions which
just attach noSrcSpan to everything.

-}</span><span>
</span><span id="line-21"></span><span>
</span><span id="line-22"></span><span class="hs-pragma">{-# LANGUAGE CPP #-}</span><span>
</span><span id="line-23"></span><span class="hs-pragma">{-# LANGUAGE ScopedTypeVariables #-}</span><span>
</span><span id="line-24"></span><span class="hs-pragma">{-# LANGUAGE FlexibleContexts #-}</span><span>
</span><span id="line-25"></span><span class="hs-pragma">{-# LANGUAGE TypeFamilies #-}</span><span>
</span><span id="line-26"></span><span class="hs-pragma">{-# LANGUAGE PatternSynonyms #-}</span><span>
</span><span id="line-27"></span><span class="hs-pragma">{-# LANGUAGE ViewPatterns #-}</span><span>
</span><span id="line-28"></span><span class="hs-pragma">{-# LANGUAGE TypeApplications #-}</span><span>
</span><span id="line-29"></span><span class="hs-pragma">{-# LANGUAGE DataKinds #-}</span><span>
</span><span id="line-30"></span><span class="hs-pragma">{-# LANGUAGE FlexibleInstances #-}</span><span>
</span><span id="line-31"></span><span>
</span><span id="line-32"></span><span class="hs-pragma">{-# OPTIONS_GHC -Wno-incomplete-record-updates #-}</span><span>
</span><span id="line-33"></span><span>
</span><span id="line-34"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">GHC.Hs.Utils</span><span class="hs-special">(</span><span>
</span><span id="line-35"></span><span>  </span><span class="annot"><span class="hs-comment">-- * Terms</span></span><span>
</span><span id="line-36"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsPar"><span class="hs-identifier">mkHsPar</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsApp"><span class="hs-identifier">mkHsApp</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsAppWith"><span class="hs-identifier">mkHsAppWith</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsApps"><span class="hs-identifier">mkHsApps</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsAppsWith"><span class="hs-identifier">mkHsAppsWith</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-37"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsAppType"><span class="hs-identifier">mkHsAppType</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsAppTypes"><span class="hs-identifier">mkHsAppTypes</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsCaseAlt"><span class="hs-identifier">mkHsCaseAlt</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-38"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#mkSimpleMatch"><span class="hs-identifier">mkSimpleMatch</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#unguardedGRHSs"><span class="hs-identifier">unguardedGRHSs</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#unguardedRHS"><span class="hs-identifier">unguardedRHS</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-39"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#mkMatchGroup"><span class="hs-identifier">mkMatchGroup</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkMatch"><span class="hs-identifier">mkMatch</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkPrefixFunRhs"><span class="hs-identifier">mkPrefixFunRhs</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsLam"><span class="hs-identifier">mkHsLam</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsIf"><span class="hs-identifier">mkHsIf</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-40"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsWrap"><span class="hs-identifier">mkHsWrap</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkLHsWrap"><span class="hs-identifier">mkLHsWrap</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsWrapCo"><span class="hs-identifier">mkHsWrapCo</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsWrapCoR"><span class="hs-identifier">mkHsWrapCoR</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkLHsWrapCo"><span class="hs-identifier">mkLHsWrapCo</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-41"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsDictLet"><span class="hs-identifier">mkHsDictLet</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsLams"><span class="hs-identifier">mkHsLams</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-42"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsOpApp"><span class="hs-identifier">mkHsOpApp</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsDo"><span class="hs-identifier">mkHsDo</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsComp"><span class="hs-identifier">mkHsComp</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsWrapPat"><span class="hs-identifier">mkHsWrapPat</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsWrapPatCo"><span class="hs-identifier">mkHsWrapPatCo</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-43"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#mkLHsPar"><span class="hs-identifier">mkLHsPar</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsCmdWrap"><span class="hs-identifier">mkHsCmdWrap</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkLHsCmdWrap"><span class="hs-identifier">mkLHsCmdWrap</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-44"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsCmdIf"><span class="hs-identifier">mkHsCmdIf</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-45"></span><span>
</span><span id="line-46"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#nlHsTyApp"><span class="hs-identifier">nlHsTyApp</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#nlHsTyApps"><span class="hs-identifier">nlHsTyApps</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#nlHsVar"><span class="hs-identifier">nlHsVar</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#nl_HsVar"><span class="hs-identifier">nl_HsVar</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#nlHsDataCon"><span class="hs-identifier">nlHsDataCon</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-47"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#nlHsLit"><span class="hs-identifier">nlHsLit</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#nlHsApp"><span class="hs-identifier">nlHsApp</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#nlHsApps"><span class="hs-identifier">nlHsApps</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#nlHsSyntaxApps"><span class="hs-identifier">nlHsSyntaxApps</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-48"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#nlHsIntLit"><span class="hs-identifier">nlHsIntLit</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#nlHsVarApps"><span class="hs-identifier">nlHsVarApps</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-49"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#nlHsDo"><span class="hs-identifier">nlHsDo</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#nlHsOpApp"><span class="hs-identifier">nlHsOpApp</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#nlHsLam"><span class="hs-identifier">nlHsLam</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#nlHsPar"><span class="hs-identifier">nlHsPar</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#nlHsIf"><span class="hs-identifier">nlHsIf</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#nlHsCase"><span class="hs-identifier">nlHsCase</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#nlList"><span class="hs-identifier">nlList</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-50"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#mkLHsTupleExpr"><span class="hs-identifier">mkLHsTupleExpr</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkLHsVarTuple"><span class="hs-identifier">mkLHsVarTuple</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#missingTupArg"><span class="hs-identifier">missingTupArg</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-51"></span><span>
</span><span id="line-52"></span><span>  </span><span class="annot"><span class="hs-comment">-- * Constructing general big tuples</span></span><span>
</span><span id="line-53"></span><span>  </span><span class="annot"><span class="hs-comment">-- $big_tuples</span></span><span>
</span><span id="line-54"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#mkChunkified"><span class="hs-identifier">mkChunkified</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#chunkify"><span class="hs-identifier">chunkify</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-55"></span><span>
</span><span id="line-56"></span><span>  </span><span class="annot"><span class="hs-comment">-- * Bindings</span></span><span>
</span><span id="line-57"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#mkFunBind"><span class="hs-identifier">mkFunBind</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkVarBind"><span class="hs-identifier">mkVarBind</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsVarBind"><span class="hs-identifier">mkHsVarBind</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkSimpleGeneratedFunBind"><span class="hs-identifier">mkSimpleGeneratedFunBind</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkTopFunBind"><span class="hs-identifier">mkTopFunBind</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-58"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#mkPatSynBind"><span class="hs-identifier">mkPatSynBind</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-59"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#isInfixFunBind"><span class="hs-identifier">isInfixFunBind</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-60"></span><span>
</span><span id="line-61"></span><span>  </span><span class="annot"><span class="hs-comment">-- * Literals</span></span><span>
</span><span id="line-62"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsIntegral"><span class="hs-identifier">mkHsIntegral</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsFractional"><span class="hs-identifier">mkHsFractional</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsIsString"><span class="hs-identifier">mkHsIsString</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsString"><span class="hs-identifier">mkHsString</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsStringPrimLit"><span class="hs-identifier">mkHsStringPrimLit</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-63"></span><span>
</span><span id="line-64"></span><span>  </span><span class="annot"><span class="hs-comment">-- * Patterns</span></span><span>
</span><span id="line-65"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#mkNPat"><span class="hs-identifier">mkNPat</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkNPlusKPat"><span class="hs-identifier">mkNPlusKPat</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#nlVarPat"><span class="hs-identifier">nlVarPat</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#nlLitPat"><span class="hs-identifier">nlLitPat</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#nlConVarPat"><span class="hs-identifier">nlConVarPat</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#nlConVarPatName"><span class="hs-identifier">nlConVarPatName</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#nlConPat"><span class="hs-identifier">nlConPat</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-66"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#nlConPatName"><span class="hs-identifier">nlConPatName</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#nlInfixConPat"><span class="hs-identifier">nlInfixConPat</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#nlNullaryConPat"><span class="hs-identifier">nlNullaryConPat</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#nlWildConPat"><span class="hs-identifier">nlWildConPat</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#nlWildPat"><span class="hs-identifier">nlWildPat</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-67"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#nlWildPatName"><span class="hs-identifier">nlWildPatName</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#nlTuplePat"><span class="hs-identifier">nlTuplePat</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkParPat"><span class="hs-identifier">mkParPat</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#nlParPat"><span class="hs-identifier">nlParPat</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-68"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#mkBigLHsVarTup"><span class="hs-identifier">mkBigLHsVarTup</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkBigLHsTup"><span class="hs-identifier">mkBigLHsTup</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkBigLHsVarPatTup"><span class="hs-identifier">mkBigLHsVarPatTup</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkBigLHsPatTup"><span class="hs-identifier">mkBigLHsPatTup</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-69"></span><span>
</span><span id="line-70"></span><span>  </span><span class="annot"><span class="hs-comment">-- * Types</span></span><span>
</span><span id="line-71"></span><span>  </span><span class="annot"><a href="GHC.Hs.Type.html#mkHsAppTy"><span class="hs-identifier">mkHsAppTy</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Type.html#mkHsAppKindTy"><span class="hs-identifier">mkHsAppKindTy</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-72"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#mkLHsSigType"><span class="hs-identifier">mkLHsSigType</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkLHsSigWcType"><span class="hs-identifier">mkLHsSigWcType</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkClassOpSigs"><span class="hs-identifier">mkClassOpSigs</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsSigEnv"><span class="hs-identifier">mkHsSigEnv</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-73"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#nlHsAppTy"><span class="hs-identifier">nlHsAppTy</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#nlHsAppKindTy"><span class="hs-identifier">nlHsAppKindTy</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#nlHsTyVar"><span class="hs-identifier">nlHsTyVar</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#nlHsFunTy"><span class="hs-identifier">nlHsFunTy</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#nlHsParTy"><span class="hs-identifier">nlHsParTy</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#nlHsTyConApp"><span class="hs-identifier">nlHsTyConApp</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-74"></span><span>
</span><span id="line-75"></span><span>  </span><span class="annot"><span class="hs-comment">-- * Stmts</span></span><span>
</span><span id="line-76"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#mkTransformStmt"><span class="hs-identifier">mkTransformStmt</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkTransformByStmt"><span class="hs-identifier">mkTransformByStmt</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkBodyStmt"><span class="hs-identifier">mkBodyStmt</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-77"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#mkPsBindStmt"><span class="hs-identifier">mkPsBindStmt</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkRnBindStmt"><span class="hs-identifier">mkRnBindStmt</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkTcBindStmt"><span class="hs-identifier">mkTcBindStmt</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-78"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#mkLastStmt"><span class="hs-identifier">mkLastStmt</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-79"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#emptyTransStmt"><span class="hs-identifier">emptyTransStmt</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkGroupUsingStmt"><span class="hs-identifier">mkGroupUsingStmt</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkGroupByUsingStmt"><span class="hs-identifier">mkGroupByUsingStmt</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-80"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#emptyRecStmt"><span class="hs-identifier">emptyRecStmt</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#emptyRecStmtName"><span class="hs-identifier">emptyRecStmtName</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#emptyRecStmtId"><span class="hs-identifier">emptyRecStmtId</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkRecStmt"><span class="hs-identifier">mkRecStmt</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-81"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#unitRecStmtTc"><span class="hs-identifier">unitRecStmtTc</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-82"></span><span>
</span><span id="line-83"></span><span>  </span><span class="annot"><span class="hs-comment">-- * Template Haskell</span></span><span>
</span><span id="line-84"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#mkUntypedSplice"><span class="hs-identifier">mkUntypedSplice</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#mkTypedSplice"><span class="hs-identifier">mkTypedSplice</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-85"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsQuasiQuote"><span class="hs-identifier">mkHsQuasiQuote</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-86"></span><span>
</span><span id="line-87"></span><span>  </span><span class="annot"><span class="hs-comment">-- * Collecting binders</span></span><span>
</span><span id="line-88"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#isUnliftedHsBind"><span class="hs-identifier">isUnliftedHsBind</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#isBangedHsBind"><span class="hs-identifier">isBangedHsBind</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-89"></span><span>
</span><span id="line-90"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#collectLocalBinders"><span class="hs-identifier">collectLocalBinders</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#collectHsValBinders"><span class="hs-identifier">collectHsValBinders</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#collectHsBindListBinders"><span class="hs-identifier">collectHsBindListBinders</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-91"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#collectHsIdBinders"><span class="hs-identifier">collectHsIdBinders</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-92"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#collectHsBindsBinders"><span class="hs-identifier">collectHsBindsBinders</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#collectHsBindBinders"><span class="hs-identifier">collectHsBindBinders</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#collectMethodBinders"><span class="hs-identifier">collectMethodBinders</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-93"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#collectPatBinders"><span class="hs-identifier">collectPatBinders</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#collectPatsBinders"><span class="hs-identifier">collectPatsBinders</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-94"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#collectLStmtsBinders"><span class="hs-identifier">collectLStmtsBinders</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#collectStmtsBinders"><span class="hs-identifier">collectStmtsBinders</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-95"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#collectLStmtBinders"><span class="hs-identifier">collectLStmtBinders</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#collectStmtBinders"><span class="hs-identifier">collectStmtBinders</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-96"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#CollectPass"><span class="hs-identifier">CollectPass</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-97"></span><span>
</span><span id="line-98"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#hsLTyClDeclBinders"><span class="hs-identifier">hsLTyClDeclBinders</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#hsTyClForeignBinders"><span class="hs-identifier">hsTyClForeignBinders</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-99"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#hsPatSynSelectors"><span class="hs-identifier">hsPatSynSelectors</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#getPatSynBinds"><span class="hs-identifier">getPatSynBinds</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-100"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#hsForeignDeclsBinders"><span class="hs-identifier">hsForeignDeclsBinders</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#hsGroupBinders"><span class="hs-identifier">hsGroupBinders</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#hsDataFamInstBinders"><span class="hs-identifier">hsDataFamInstBinders</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-101"></span><span>
</span><span id="line-102"></span><span>  </span><span class="annot"><span class="hs-comment">-- * Collecting implicit binders</span></span><span>
</span><span id="line-103"></span><span>  </span><span class="annot"><a href="GHC.Hs.Utils.html#lStmtsImplicits"><span class="hs-identifier">lStmtsImplicits</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#hsValBindsImplicits"><span class="hs-identifier">hsValBindsImplicits</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#lPatImplicits"><span class="hs-identifier">lPatImplicits</span></a></span><span>
</span><span id="line-104"></span><span>  </span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span class="hs-cpp">

#include &quot;HsVersions.h&quot;
</span><span>
</span><span id="line-108"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Prelude.html"><span class="hs-identifier">GHC.Prelude</span></a></span><span>
</span><span id="line-109"></span><span>
</span><span id="line-110"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Hs.Decls.html"><span class="hs-identifier">GHC.Hs.Decls</span></a></span><span>
</span><span id="line-111"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html"><span class="hs-identifier">GHC.Hs.Binds</span></a></span><span>
</span><span id="line-112"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html"><span class="hs-identifier">GHC.Hs.Expr</span></a></span><span>
</span><span id="line-113"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html"><span class="hs-identifier">GHC.Hs.Pat</span></a></span><span>
</span><span id="line-114"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Hs.Type.html"><span class="hs-identifier">GHC.Hs.Type</span></a></span><span>
</span><span id="line-115"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Hs.Lit.html"><span class="hs-identifier">GHC.Hs.Lit</span></a></span><span>
</span><span id="line-116"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html"><span class="hs-identifier">GHC.Hs.Extension</span></a></span><span>
</span><span id="line-117"></span><span>
</span><span id="line-118"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Tc.Types.Evidence.html"><span class="hs-identifier">GHC.Tc.Types.Evidence</span></a></span><span>
</span><span id="line-119"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Name.Reader.html"><span class="hs-identifier">GHC.Types.Name.Reader</span></a></span><span>
</span><span id="line-120"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Var.html"><span class="hs-identifier">GHC.Types.Var</span></a></span><span>
</span><span id="line-121"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Core.TyCo.Rep.html"><span class="hs-identifier">GHC.Core.TyCo.Rep</span></a></span><span>
</span><span id="line-122"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Core.Multiplicity.html"><span class="hs-identifier">GHC.Core.Multiplicity</span></a></span><span> </span><span class="hs-special">(</span><span> </span><span class="hs-keyword">pattern</span><span> </span><span class="annot"><a href="GHC.Core.Type.html#Many"><span class="hs-identifier">Many</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-123"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Builtin.Types.html"><span class="hs-identifier">GHC.Builtin.Types</span></a></span><span> </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="GHC.Builtin.Types.html#unitTy"><span class="hs-identifier">unitTy</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-124"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Tc.Utils.TcType.html"><span class="hs-identifier">GHC.Tc.Utils.TcType</span></a></span><span>
</span><span id="line-125"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Core.DataCon.html"><span class="hs-identifier">GHC.Core.DataCon</span></a></span><span>
</span><span id="line-126"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Core.ConLike.html"><span class="hs-identifier">GHC.Core.ConLike</span></a></span><span>
</span><span id="line-127"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Id.html"><span class="hs-identifier">GHC.Types.Id</span></a></span><span>
</span><span id="line-128"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Name.html"><span class="hs-identifier">GHC.Types.Name</span></a></span><span>
</span><span id="line-129"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Name.Set.html"><span class="hs-identifier">GHC.Types.Name.Set</span></a></span><span> </span><span class="hs-keyword">hiding</span><span> </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="GHC.Types.Name.Set.html#unitFV"><span class="hs-identifier">unitFV</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-130"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Name.Env.html"><span class="hs-identifier">GHC.Types.Name.Env</span></a></span><span>
</span><span id="line-131"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Basic.html"><span class="hs-identifier">GHC.Types.Basic</span></a></span><span>
</span><span id="line-132"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html"><span class="hs-identifier">GHC.Types.SrcLoc</span></a></span><span>
</span><span id="line-133"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html"><span class="hs-identifier">GHC.Data.FastString</span></a></span><span>
</span><span id="line-134"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Misc.html"><span class="hs-identifier">GHC.Utils.Misc</span></a></span><span>
</span><span id="line-135"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Data.Bag.html"><span class="hs-identifier">GHC.Data.Bag</span></a></span><span>
</span><span id="line-136"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html"><span class="hs-identifier">GHC.Utils.Outputable</span></a></span><span>
</span><span id="line-137"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Settings.Constants.html"><span class="hs-identifier">GHC.Settings.Constants</span></a></span><span>
</span><span id="line-138"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Parser.Annotation.html"><span class="hs-identifier">GHC.Parser.Annotation</span></a></span><span>
</span><span id="line-139"></span><span>
</span><span id="line-140"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Either.html#"><span class="hs-identifier">Data.Either</span></a></span><span>
</span><span id="line-141"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Function.html#"><span class="hs-identifier">Data.Function</span></a></span><span>
</span><span id="line-142"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.List.html#"><span class="hs-identifier">Data.List</span></a></span><span>
</span><span id="line-143"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Proxy.html#"><span class="hs-identifier">Data.Proxy</span></a></span><span>
</span><span id="line-144"></span><span>
</span><span id="line-145"></span><span class="hs-comment">{-
************************************************************************
*                                                                      *
        Some useful helpers for constructing syntax
*                                                                      *
************************************************************************

These functions attempt to construct a not-completely-useless 'SrcSpan'
from their components, compared with the @nl*@ functions below which
just attach 'noSrcSpan' to everything.
-}</span><span>
</span><span id="line-156"></span><span>
</span><span id="line-157"></span><span class="hs-comment">-- | @e =&gt; (e)@</span><span>
</span><span id="line-158"></span><span id="local-6989586621680870787"><span class="annot"><a href="GHC.Hs.Utils.html#mkHsPar"><span class="hs-identifier hs-type">mkHsPar</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870787"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870787"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-159"></span><span id="mkHsPar"><span class="annot"><span class="annottext">mkHsPar :: forall (id :: Pass). LHsExpr (GhcPass id) -&gt; LHsExpr (GhcPass id)
</span><a href="GHC.Hs.Utils.html#mkHsPar"><span class="hs-identifier hs-var hs-var">mkHsPar</span></a></span></span><span> </span><span id="local-6989586621680869926"><span class="annot"><span class="annottext">LHsExpr (GhcPass id)
</span><a href="#local-6989586621680869926"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; HsExpr (GhcPass id) -&gt; LHsExpr (GhcPass id)
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr (GhcPass id) -&gt; SrcSpan
forall l e. GenLocated l e -&gt; l
</span><a href="GHC.Types.SrcLoc.html#getLoc"><span class="hs-identifier hs-var">getLoc</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr (GhcPass id)
</span><a href="#local-6989586621680869926"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XPar (GhcPass id) -&gt; LHsExpr (GhcPass id) -&gt; HsExpr (GhcPass id)
forall p. XPar p -&gt; LHsExpr p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsPar"><span class="hs-identifier hs-var">HsPar</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XPar (GhcPass id)
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr (GhcPass id)
</span><a href="#local-6989586621680869926"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-160"></span><span>
</span><span id="line-161"></span><span id="local-6989586621680870775"><span id="local-6989586621680870779"><span class="annot"><a href="GHC.Hs.Utils.html#mkSimpleMatch"><span class="hs-identifier hs-type">mkSimpleMatch</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsMatchContext"><span class="hs-identifier hs-type">HsMatchContext</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#NoGhcTc"><span class="hs-identifier hs-type">NoGhcTc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870779"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-162"></span><span>              </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870779"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680870775"><span class="hs-identifier hs-type">body</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870779"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-163"></span><span>              </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LMatch"><span class="hs-identifier hs-type">LMatch</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870779"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680870775"><span class="hs-identifier hs-type">body</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870779"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span></span></span><span>
</span><span id="line-164"></span><span id="mkSimpleMatch"><span class="annot"><span class="annottext">mkSimpleMatch :: forall (p :: Pass) (body :: * -&gt; *).
HsMatchContext (NoGhcTc (GhcPass p))
-&gt; [LPat (GhcPass p)]
-&gt; Located (body (GhcPass p))
-&gt; LMatch (GhcPass p) (Located (body (GhcPass p)))
</span><a href="GHC.Hs.Utils.html#mkSimpleMatch"><span class="hs-identifier hs-var hs-var">mkSimpleMatch</span></a></span></span><span> </span><span id="local-6989586621680869921"><span class="annot"><span class="annottext">HsMatchContext (NoGhcTc (GhcPass p))
</span><a href="#local-6989586621680869921"><span class="hs-identifier hs-var">ctxt</span></a></span></span><span> </span><span id="local-6989586621680869920"><span class="annot"><span class="annottext">[LPat (GhcPass p)]
</span><a href="#local-6989586621680869920"><span class="hs-identifier hs-var">pats</span></a></span></span><span> </span><span id="local-6989586621680869919"><span class="annot"><span class="annottext">Located (body (GhcPass p))
</span><a href="#local-6989586621680869919"><span class="hs-identifier hs-var">rhs</span></a></span></span><span>
</span><span id="line-165"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SrcSpan
-&gt; Match (GhcPass p) (Located (body (GhcPass p)))
-&gt; GenLocated
     SrcSpan (Match (GhcPass p) (Located (body (GhcPass p))))
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869918"><span class="hs-identifier hs-var">loc</span></a></span><span> </span><span class="annot"><span class="annottext">(Match (GhcPass p) (Located (body (GhcPass p)))
 -&gt; GenLocated
      SrcSpan (Match (GhcPass p) (Located (body (GhcPass p)))))
-&gt; Match (GhcPass p) (Located (body (GhcPass p)))
-&gt; GenLocated
     SrcSpan (Match (GhcPass p) (Located (body (GhcPass p))))
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-166"></span><span>    </span><span class="annot"><span class="annottext">Match :: forall p body.
XCMatch p body
-&gt; HsMatchContext (NoGhcTc p)
-&gt; [LPat p]
-&gt; GRHSs p body
-&gt; Match p body
</span><a href="GHC.Hs.Expr.html#Match"><span class="hs-identifier hs-type">Match</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">m_ext :: XCMatch (GhcPass p) (Located (body (GhcPass p)))
</span><a href="GHC.Hs.Expr.html#m_ext"><span class="hs-identifier hs-var">m_ext</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NoExtField
XCMatch (GhcPass p) (Located (body (GhcPass p)))
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">m_ctxt :: HsMatchContext (NoGhcTc (GhcPass p))
</span><a href="GHC.Hs.Expr.html#m_ctxt"><span class="hs-identifier hs-var">m_ctxt</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsMatchContext (NoGhcTc (GhcPass p))
</span><a href="#local-6989586621680869921"><span class="hs-identifier hs-var">ctxt</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">m_pats :: [LPat (GhcPass p)]
</span><a href="GHC.Hs.Expr.html#m_pats"><span class="hs-identifier hs-var">m_pats</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[LPat (GhcPass p)]
</span><a href="#local-6989586621680869920"><span class="hs-identifier hs-var">pats</span></a></span><span>
</span><span id="line-167"></span><span>          </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">m_grhss :: GRHSs (GhcPass p) (Located (body (GhcPass p)))
</span><a href="GHC.Hs.Expr.html#m_grhss"><span class="hs-identifier hs-var">m_grhss</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Located (body (GhcPass p))
-&gt; GRHSs (GhcPass p) (Located (body (GhcPass p)))
forall (body :: * -&gt; *) (p :: Pass).
Located (body (GhcPass p))
-&gt; GRHSs (GhcPass p) (Located (body (GhcPass p)))
</span><a href="GHC.Hs.Utils.html#unguardedGRHSs"><span class="hs-identifier hs-var">unguardedGRHSs</span></a></span><span> </span><span class="annot"><span class="annottext">Located (body (GhcPass p))
</span><a href="#local-6989586621680869919"><span class="hs-identifier hs-var">rhs</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-168"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-169"></span><span>    </span><span id="local-6989586621680869918"><span class="annot"><span class="annottext">loc :: SrcSpan
</span><a href="#local-6989586621680869918"><span class="hs-identifier hs-var hs-var">loc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">[LPat (GhcPass p)]
</span><a href="#local-6989586621680869920"><span class="hs-identifier hs-var">pats</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-170"></span><span>                </span><span class="hs-special">[</span><span class="hs-special">]</span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Located (body (GhcPass p)) -&gt; SrcSpan
forall l e. GenLocated l e -&gt; l
</span><a href="GHC.Types.SrcLoc.html#getLoc"><span class="hs-identifier hs-var">getLoc</span></a></span><span> </span><span class="annot"><span class="annottext">Located (body (GhcPass p))
</span><a href="#local-6989586621680869919"><span class="hs-identifier hs-var">rhs</span></a></span><span>
</span><span id="line-171"></span><span>                </span><span class="hs-special">(</span><span id="local-6989586621680869912"><span class="annot"><span class="annottext">LPat (GhcPass p)
</span><a href="#local-6989586621680869912"><span class="hs-identifier hs-var">pat</span></a></span></span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span class="annot"><span class="annottext">[LPat (GhcPass p)]
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; SrcSpan -&gt; SrcSpan
</span><a href="GHC.Types.SrcLoc.html#combineSrcSpans"><span class="hs-identifier hs-var">combineSrcSpans</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">GenLocated SrcSpan (Pat (GhcPass p)) -&gt; SrcSpan
forall l e. GenLocated l e -&gt; l
</span><a href="GHC.Types.SrcLoc.html#getLoc"><span class="hs-identifier hs-var">getLoc</span></a></span><span> </span><span class="annot"><span class="annottext">GenLocated SrcSpan (Pat (GhcPass p))
LPat (GhcPass p)
</span><a href="#local-6989586621680869912"><span class="hs-identifier hs-var">pat</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Located (body (GhcPass p)) -&gt; SrcSpan
forall l e. GenLocated l e -&gt; l
</span><a href="GHC.Types.SrcLoc.html#getLoc"><span class="hs-identifier hs-var">getLoc</span></a></span><span> </span><span class="annot"><span class="annottext">Located (body (GhcPass p))
</span><a href="#local-6989586621680869919"><span class="hs-identifier hs-var">rhs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-172"></span><span>
</span><span id="line-173"></span><span id="local-6989586621680870762"><span id="local-6989586621680870763"><span class="annot"><a href="GHC.Hs.Utils.html#unguardedGRHSs"><span class="hs-identifier hs-type">unguardedGRHSs</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680870763"><span class="hs-identifier hs-type">body</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870762"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-174"></span><span>               </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#GRHSs"><span class="hs-identifier hs-type">GRHSs</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870762"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680870763"><span class="hs-identifier hs-type">body</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870762"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span></span></span><span>
</span><span id="line-175"></span><span id="unguardedGRHSs"><span class="annot"><span class="annottext">unguardedGRHSs :: forall (body :: * -&gt; *) (p :: Pass).
Located (body (GhcPass p))
-&gt; GRHSs (GhcPass p) (Located (body (GhcPass p)))
</span><a href="GHC.Hs.Utils.html#unguardedGRHSs"><span class="hs-identifier hs-var hs-var">unguardedGRHSs</span></a></span></span><span> </span><span id="local-6989586621680869910"><span class="annot"><span class="annottext">rhs :: Located (body (GhcPass p))
</span><a href="#local-6989586621680869910"><span class="hs-identifier hs-var">rhs</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621680869909"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869909"><span class="hs-identifier hs-var">loc</span></a></span></span><span> </span><span class="annot"><span class="annottext">body (GhcPass p)
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>
</span><span id="line-176"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XCGRHSs (GhcPass p) (Located (body (GhcPass p)))
-&gt; [LGRHS (GhcPass p) (Located (body (GhcPass p)))]
-&gt; LHsLocalBinds (GhcPass p)
-&gt; GRHSs (GhcPass p) (Located (body (GhcPass p)))
forall p body.
XCGRHSs p body -&gt; [LGRHS p body] -&gt; LHsLocalBinds p -&gt; GRHSs p body
</span><a href="GHC.Hs.Expr.html#GRHSs"><span class="hs-identifier hs-var">GRHSs</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XCGRHSs (GhcPass p) (Located (body (GhcPass p)))
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan
-&gt; Located (body (GhcPass p))
-&gt; [LGRHS (GhcPass p) (Located (body (GhcPass p)))]
forall (body :: * -&gt; *) (p :: Pass).
SrcSpan
-&gt; Located (body (GhcPass p))
-&gt; [LGRHS (GhcPass p) (Located (body (GhcPass p)))]
</span><a href="GHC.Hs.Utils.html#unguardedRHS"><span class="hs-identifier hs-var">unguardedRHS</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869909"><span class="hs-identifier hs-var">loc</span></a></span><span> </span><span class="annot"><span class="annottext">Located (body (GhcPass p))
</span><a href="#local-6989586621680869910"><span class="hs-identifier hs-var">rhs</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsLocalBindsLR (GhcPass p) (GhcPass p) -&gt; LHsLocalBinds (GhcPass p)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="annot"><span class="annottext">HsLocalBindsLR (GhcPass p) (GhcPass p)
forall (a :: Pass) (b :: Pass).
HsLocalBindsLR (GhcPass a) (GhcPass b)
</span><a href="GHC.Hs.Binds.html#emptyLocalBinds"><span class="hs-identifier hs-var">emptyLocalBinds</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-177"></span><span>
</span><span id="line-178"></span><span id="local-6989586621680870752"><span id="local-6989586621680870753"><span class="annot"><a href="GHC.Hs.Utils.html#unguardedRHS"><span class="hs-identifier hs-type">unguardedRHS</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680870753"><span class="hs-identifier hs-type">body</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870752"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-179"></span><span>             </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#LGRHS"><span class="hs-identifier hs-type">LGRHS</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870752"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680870753"><span class="hs-identifier hs-type">body</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870752"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">]</span></span></span><span>
</span><span id="line-180"></span><span id="unguardedRHS"><span class="annot"><span class="annottext">unguardedRHS :: forall (body :: * -&gt; *) (p :: Pass).
SrcSpan
-&gt; Located (body (GhcPass p))
-&gt; [LGRHS (GhcPass p) (Located (body (GhcPass p)))]
</span><a href="GHC.Hs.Utils.html#unguardedRHS"><span class="hs-identifier hs-var hs-var">unguardedRHS</span></a></span></span><span> </span><span id="local-6989586621680869905"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869905"><span class="hs-identifier hs-var">loc</span></a></span></span><span> </span><span id="local-6989586621680869904"><span class="annot"><span class="annottext">Located (body (GhcPass p))
</span><a href="#local-6989586621680869904"><span class="hs-identifier hs-var">rhs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">SrcSpan
-&gt; GRHS (GhcPass p) (Located (body (GhcPass p)))
-&gt; LGRHS (GhcPass p) (Located (body (GhcPass p)))
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869905"><span class="hs-identifier hs-var">loc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XCGRHS (GhcPass p) (Located (body (GhcPass p)))
-&gt; [GuardLStmt (GhcPass p)]
-&gt; Located (body (GhcPass p))
-&gt; GRHS (GhcPass p) (Located (body (GhcPass p)))
forall p body.
XCGRHS p body -&gt; [GuardLStmt p] -&gt; body -&gt; GRHS p body
</span><a href="GHC.Hs.Expr.html#GRHS"><span class="hs-identifier hs-var">GRHS</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XCGRHS (GhcPass p) (Located (body (GhcPass p)))
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="annot"><span class="annottext">Located (body (GhcPass p))
</span><a href="#local-6989586621680869904"><span class="hs-identifier hs-var">rhs</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-181"></span><span>
</span><span id="line-182"></span><span id="local-6989586621680870738"><span id="local-6989586621680870739"><span class="annot"><a href="GHC.Hs.Utils.html#mkMatchGroup"><span class="hs-identifier hs-type">mkMatchGroup</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#XMG"><span class="hs-identifier hs-type">XMG</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870739"><span class="hs-identifier hs-type">name</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680870738"><span class="hs-identifier hs-type">body</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870739"><span class="hs-identifier hs-type">name</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="hs-operator hs-type">~</span></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#NoExtField"><span class="hs-identifier hs-type">NoExtField</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-183"></span><span>             </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Basic.html#Origin"><span class="hs-identifier hs-type">Origin</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#LMatch"><span class="hs-identifier hs-type">LMatch</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870739"><span class="hs-identifier hs-type">name</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680870738"><span class="hs-identifier hs-type">body</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870739"><span class="hs-identifier hs-type">name</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-184"></span><span>             </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#MatchGroup"><span class="hs-identifier hs-type">MatchGroup</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870739"><span class="hs-identifier hs-type">name</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680870738"><span class="hs-identifier hs-type">body</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870739"><span class="hs-identifier hs-type">name</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span></span></span><span>
</span><span id="line-185"></span><span id="mkMatchGroup"><span class="annot"><span class="annottext">mkMatchGroup :: forall name (body :: * -&gt; *).
(XMG name (Located (body name)) ~ NoExtField) =&gt;
Origin
-&gt; [LMatch name (Located (body name))]
-&gt; MatchGroup name (Located (body name))
</span><a href="GHC.Hs.Utils.html#mkMatchGroup"><span class="hs-identifier hs-var hs-var">mkMatchGroup</span></a></span></span><span> </span><span id="local-6989586621680869898"><span class="annot"><span class="annottext">Origin
</span><a href="#local-6989586621680869898"><span class="hs-identifier hs-var">origin</span></a></span></span><span> </span><span id="local-6989586621680869897"><span class="annot"><span class="annottext">[LMatch name (Located (body name))]
</span><a href="#local-6989586621680869897"><span class="hs-identifier hs-var">matches</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">MG :: forall p body.
XMG p body
-&gt; Located [LMatch p body] -&gt; Origin -&gt; MatchGroup p body
</span><a href="GHC.Hs.Expr.html#MG"><span class="hs-identifier hs-type">MG</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">mg_ext :: XMG name (Located (body name))
</span><a href="GHC.Hs.Expr.html#mg_ext"><span class="hs-identifier hs-var">mg_ext</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NoExtField
XMG name (Located (body name))
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span>
</span><span id="line-186"></span><span>                                 </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">mg_alts :: Located [LMatch name (Located (body name))]
</span><a href="GHC.Hs.Expr.html#mg_alts"><span class="hs-identifier hs-var">mg_alts</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[LMatch name (Located (body name))]
-&gt; Located [LMatch name (Located (body name))]
forall a. [Located a] -&gt; Located [Located a]
</span><a href="GHC.Hs.Utils.html#mkLocatedList"><span class="hs-identifier hs-var">mkLocatedList</span></a></span><span> </span><span class="annot"><span class="annottext">[LMatch name (Located (body name))]
</span><a href="#local-6989586621680869897"><span class="hs-identifier hs-var">matches</span></a></span><span>
</span><span id="line-187"></span><span>                                 </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">mg_origin :: Origin
</span><a href="GHC.Hs.Expr.html#mg_origin"><span class="hs-identifier hs-var">mg_origin</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Origin
</span><a href="#local-6989586621680869898"><span class="hs-identifier hs-var">origin</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-188"></span><span>
</span><span id="line-189"></span><span id="local-6989586621680870731"><span class="annot"><a href="GHC.Hs.Utils.html#mkLocatedList"><span class="hs-identifier hs-type">mkLocatedList</span></a></span><span> </span><span class="hs-glyph">::</span><span>  </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870731"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870731"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span></span><span>
</span><span id="line-190"></span><span id="mkLocatedList"><span class="annot"><span class="annottext">mkLocatedList :: forall a. [Located a] -&gt; Located [Located a]
</span><a href="GHC.Hs.Utils.html#mkLocatedList"><span class="hs-identifier hs-var hs-var">mkLocatedList</span></a></span></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Located a] -&gt; Located [Located a]
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-191"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkLocatedList"><span class="hs-identifier hs-var">mkLocatedList</span></a></span><span> </span><span id="local-6989586621680869891"><span class="annot"><span class="annottext">[Located a]
</span><a href="#local-6989586621680869891"><span class="hs-identifier hs-var">ms</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; [Located a] -&gt; Located [Located a]
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Located a -&gt; Located a -&gt; SrcSpan
forall a b. Located a -&gt; Located b -&gt; SrcSpan
</span><a href="GHC.Types.SrcLoc.html#combineLocs"><span class="hs-identifier hs-var">combineLocs</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Located a] -&gt; Located a
forall a. [a] -&gt; a
</span><a href="../../base/src/GHC.List.html#head"><span class="hs-identifier hs-var">head</span></a></span><span> </span><span class="annot"><span class="annottext">[Located a]
</span><a href="#local-6989586621680869891"><span class="hs-identifier hs-var">ms</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Located a] -&gt; Located a
forall a. [a] -&gt; a
</span><a href="../../base/src/GHC.List.html#last"><span class="hs-identifier hs-var">last</span></a></span><span> </span><span class="annot"><span class="annottext">[Located a]
</span><a href="#local-6989586621680869891"><span class="hs-identifier hs-var">ms</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[Located a]
</span><a href="#local-6989586621680869891"><span class="hs-identifier hs-var">ms</span></a></span><span>
</span><span id="line-192"></span><span>
</span><span id="line-193"></span><span id="local-6989586621680870726"><span class="annot"><a href="GHC.Hs.Utils.html#mkHsApp"><span class="hs-identifier hs-type">mkHsApp</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870726"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870726"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870726"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-194"></span><span id="mkHsApp"><span class="annot"><span class="annottext">mkHsApp :: forall (id :: Pass).
LHsExpr (GhcPass id)
-&gt; LHsExpr (GhcPass id) -&gt; LHsExpr (GhcPass id)
</span><a href="GHC.Hs.Utils.html#mkHsApp"><span class="hs-identifier hs-var hs-var">mkHsApp</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(LHsExpr (GhcPass id)
 -&gt; LHsExpr (GhcPass id)
 -&gt; HsExpr (GhcPass id)
 -&gt; LHsExpr (GhcPass id))
-&gt; LHsExpr (GhcPass id)
-&gt; LHsExpr (GhcPass id)
-&gt; LHsExpr (GhcPass id)
forall (id :: Pass).
(LHsExpr (GhcPass id)
 -&gt; LHsExpr (GhcPass id)
 -&gt; HsExpr (GhcPass id)
 -&gt; LHsExpr (GhcPass id))
-&gt; LHsExpr (GhcPass id)
-&gt; LHsExpr (GhcPass id)
-&gt; LHsExpr (GhcPass id)
</span><a href="GHC.Hs.Utils.html#mkHsAppWith"><span class="hs-identifier hs-var">mkHsAppWith</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr (GhcPass id)
-&gt; LHsExpr (GhcPass id)
-&gt; HsExpr (GhcPass id)
-&gt; LHsExpr (GhcPass id)
forall a b c. Located a -&gt; Located b -&gt; c -&gt; Located c
</span><a href="GHC.Types.SrcLoc.html#addCLoc"><span class="hs-identifier hs-var">addCLoc</span></a></span><span>
</span><span id="line-195"></span><span>
</span><span id="line-196"></span><span id="local-6989586621680870724"><span class="annot"><a href="GHC.Hs.Utils.html#mkHsAppWith"><span class="hs-identifier hs-type">mkHsAppWith</span></a></span><span>
</span><span id="line-197"></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870724"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870724"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsExpr"><span class="hs-identifier hs-type">HsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870724"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870724"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-198"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870724"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-199"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870724"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-200"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870724"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-201"></span><span id="mkHsAppWith"><span class="annot"><span class="annottext">mkHsAppWith :: forall (id :: Pass).
(LHsExpr (GhcPass id)
 -&gt; LHsExpr (GhcPass id)
 -&gt; HsExpr (GhcPass id)
 -&gt; LHsExpr (GhcPass id))
-&gt; LHsExpr (GhcPass id)
-&gt; LHsExpr (GhcPass id)
-&gt; LHsExpr (GhcPass id)
</span><a href="GHC.Hs.Utils.html#mkHsAppWith"><span class="hs-identifier hs-var hs-var">mkHsAppWith</span></a></span></span><span> </span><span id="local-6989586621680869886"><span class="annot"><span class="annottext">LHsExpr (GhcPass id)
-&gt; LHsExpr (GhcPass id)
-&gt; HsExpr (GhcPass id)
-&gt; LHsExpr (GhcPass id)
</span><a href="#local-6989586621680869886"><span class="hs-identifier hs-var">mkLocated</span></a></span></span><span> </span><span id="local-6989586621680869885"><span class="annot"><span class="annottext">LHsExpr (GhcPass id)
</span><a href="#local-6989586621680869885"><span class="hs-identifier hs-var">e1</span></a></span></span><span> </span><span id="local-6989586621680869884"><span class="annot"><span class="annottext">LHsExpr (GhcPass id)
</span><a href="#local-6989586621680869884"><span class="hs-identifier hs-var">e2</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LHsExpr (GhcPass id)
-&gt; LHsExpr (GhcPass id)
-&gt; HsExpr (GhcPass id)
-&gt; LHsExpr (GhcPass id)
</span><a href="#local-6989586621680869886"><span class="hs-identifier hs-var">mkLocated</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr (GhcPass id)
</span><a href="#local-6989586621680869885"><span class="hs-identifier hs-var">e1</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr (GhcPass id)
</span><a href="#local-6989586621680869884"><span class="hs-identifier hs-var">e2</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XApp (GhcPass id)
-&gt; LHsExpr (GhcPass id)
-&gt; LHsExpr (GhcPass id)
-&gt; HsExpr (GhcPass id)
forall p. XApp p -&gt; LHsExpr p -&gt; LHsExpr p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsApp"><span class="hs-identifier hs-var">HsApp</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XApp (GhcPass id)
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr (GhcPass id)
</span><a href="#local-6989586621680869885"><span class="hs-identifier hs-var">e1</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr (GhcPass id)
</span><a href="#local-6989586621680869884"><span class="hs-identifier hs-var">e2</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-202"></span><span>
</span><span id="line-203"></span><span id="local-6989586621680870718"><span class="annot"><a href="GHC.Hs.Utils.html#mkHsApps"><span class="hs-identifier hs-type">mkHsApps</span></a></span><span>
</span><span id="line-204"></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870718"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870718"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870718"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-205"></span><span id="mkHsApps"><span class="annot"><span class="annottext">mkHsApps :: forall (id :: Pass).
LHsExpr (GhcPass id)
-&gt; [LHsExpr (GhcPass id)] -&gt; LHsExpr (GhcPass id)
</span><a href="GHC.Hs.Utils.html#mkHsApps"><span class="hs-identifier hs-var hs-var">mkHsApps</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(LHsExpr (GhcPass id)
 -&gt; LHsExpr (GhcPass id)
 -&gt; HsExpr (GhcPass id)
 -&gt; LHsExpr (GhcPass id))
-&gt; LHsExpr (GhcPass id)
-&gt; [LHsExpr (GhcPass id)]
-&gt; LHsExpr (GhcPass id)
forall (id :: Pass).
(LHsExpr (GhcPass id)
 -&gt; LHsExpr (GhcPass id)
 -&gt; HsExpr (GhcPass id)
 -&gt; LHsExpr (GhcPass id))
-&gt; LHsExpr (GhcPass id)
-&gt; [LHsExpr (GhcPass id)]
-&gt; LHsExpr (GhcPass id)
</span><a href="GHC.Hs.Utils.html#mkHsAppsWith"><span class="hs-identifier hs-var">mkHsAppsWith</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr (GhcPass id)
-&gt; LHsExpr (GhcPass id)
-&gt; HsExpr (GhcPass id)
-&gt; LHsExpr (GhcPass id)
forall a b c. Located a -&gt; Located b -&gt; c -&gt; Located c
</span><a href="GHC.Types.SrcLoc.html#addCLoc"><span class="hs-identifier hs-var">addCLoc</span></a></span><span>
</span><span id="line-206"></span><span>
</span><span id="line-207"></span><span id="local-6989586621680870716"><span class="annot"><a href="GHC.Hs.Utils.html#mkHsAppsWith"><span class="hs-identifier hs-type">mkHsAppsWith</span></a></span><span>
</span><span id="line-208"></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870716"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870716"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsExpr"><span class="hs-identifier hs-type">HsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870716"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870716"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-209"></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870716"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-210"></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870716"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-211"></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870716"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-212"></span><span id="mkHsAppsWith"><span class="annot"><span class="annottext">mkHsAppsWith :: forall (id :: Pass).
(LHsExpr (GhcPass id)
 -&gt; LHsExpr (GhcPass id)
 -&gt; HsExpr (GhcPass id)
 -&gt; LHsExpr (GhcPass id))
-&gt; LHsExpr (GhcPass id)
-&gt; [LHsExpr (GhcPass id)]
-&gt; LHsExpr (GhcPass id)
</span><a href="GHC.Hs.Utils.html#mkHsAppsWith"><span class="hs-identifier hs-var hs-var">mkHsAppsWith</span></a></span></span><span> </span><span id="local-6989586621680869881"><span class="annot"><span class="annottext">LHsExpr (GhcPass id)
-&gt; LHsExpr (GhcPass id)
-&gt; HsExpr (GhcPass id)
-&gt; LHsExpr (GhcPass id)
</span><a href="#local-6989586621680869881"><span class="hs-identifier hs-var">mkLocated</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(LHsExpr (GhcPass id)
 -&gt; LHsExpr (GhcPass id) -&gt; LHsExpr (GhcPass id))
-&gt; LHsExpr (GhcPass id)
-&gt; [LHsExpr (GhcPass id)]
-&gt; LHsExpr (GhcPass id)
forall (t :: * -&gt; *) b a.
Foldable t =&gt;
(b -&gt; a -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldl%27"><span class="hs-identifier hs-var">foldl'</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(LHsExpr (GhcPass id)
 -&gt; LHsExpr (GhcPass id)
 -&gt; HsExpr (GhcPass id)
 -&gt; LHsExpr (GhcPass id))
-&gt; LHsExpr (GhcPass id)
-&gt; LHsExpr (GhcPass id)
-&gt; LHsExpr (GhcPass id)
forall (id :: Pass).
(LHsExpr (GhcPass id)
 -&gt; LHsExpr (GhcPass id)
 -&gt; HsExpr (GhcPass id)
 -&gt; LHsExpr (GhcPass id))
-&gt; LHsExpr (GhcPass id)
-&gt; LHsExpr (GhcPass id)
-&gt; LHsExpr (GhcPass id)
</span><a href="GHC.Hs.Utils.html#mkHsAppWith"><span class="hs-identifier hs-var">mkHsAppWith</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr (GhcPass id)
-&gt; LHsExpr (GhcPass id)
-&gt; HsExpr (GhcPass id)
-&gt; LHsExpr (GhcPass id)
</span><a href="#local-6989586621680869881"><span class="hs-identifier hs-var">mkLocated</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-213"></span><span>
</span><span id="line-214"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsAppType"><span class="hs-identifier hs-type">mkHsAppType</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Type.html#LHsWcType"><span class="hs-identifier hs-type">LHsWcType</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span>
</span><span id="line-215"></span><span id="mkHsAppType"><span class="annot"><span class="annottext">mkHsAppType :: Located (HsExpr GhcRn) -&gt; LHsWcType GhcRn -&gt; Located (HsExpr GhcRn)
</span><a href="GHC.Hs.Utils.html#mkHsAppType"><span class="hs-identifier hs-var hs-var">mkHsAppType</span></a></span></span><span> </span><span id="local-6989586621680869879"><span class="annot"><span class="annottext">Located (HsExpr GhcRn)
</span><a href="#local-6989586621680869879"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span id="local-6989586621680869878"><span class="annot"><span class="annottext">LHsWcType GhcRn
</span><a href="#local-6989586621680869878"><span class="hs-identifier hs-var">t</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Located (HsExpr GhcRn)
-&gt; Located (HsType GhcRn) -&gt; HsExpr GhcRn -&gt; Located (HsExpr GhcRn)
forall a b c. Located a -&gt; Located b -&gt; c -&gt; Located c
</span><a href="GHC.Types.SrcLoc.html#addCLoc"><span class="hs-identifier hs-var">addCLoc</span></a></span><span> </span><span class="annot"><span class="annottext">Located (HsExpr GhcRn)
</span><a href="#local-6989586621680869879"><span class="hs-identifier hs-var">e</span></a></span><span> </span><span class="annot"><span class="annottext">Located (HsType GhcRn)
</span><a href="#local-6989586621680869877"><span class="hs-identifier hs-var">t_body</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XAppTypeE GhcRn
-&gt; Located (HsExpr GhcRn)
-&gt; LHsWcType (NoGhcTc GhcRn)
-&gt; HsExpr GhcRn
forall p.
XAppTypeE p -&gt; LHsExpr p -&gt; LHsWcType (NoGhcTc p) -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsAppType"><span class="hs-identifier hs-var">HsAppType</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XAppTypeE GhcRn
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">Located (HsExpr GhcRn)
</span><a href="#local-6989586621680869879"><span class="hs-identifier hs-var">e</span></a></span><span> </span><span class="annot"><span class="annottext">LHsWcType GhcRn
LHsWcType (NoGhcTc GhcRn)
</span><a href="#local-6989586621680869875"><span class="hs-identifier hs-var">paren_wct</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-216"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-217"></span><span>    </span><span id="local-6989586621680869877"><span class="annot"><span class="annottext">t_body :: Located (HsType GhcRn)
</span><a href="#local-6989586621680869877"><span class="hs-identifier hs-var hs-var">t_body</span></a></span></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LHsWcType GhcRn -&gt; Located (HsType GhcRn)
forall pass thing. HsWildCardBndrs pass thing -&gt; thing
</span><a href="GHC.Hs.Type.html#hswc_body"><span class="hs-identifier hs-var hs-var">hswc_body</span></a></span><span> </span><span class="annot"><span class="annottext">LHsWcType GhcRn
</span><a href="#local-6989586621680869878"><span class="hs-identifier hs-var">t</span></a></span><span>
</span><span id="line-218"></span><span>    </span><span id="local-6989586621680869875"><span class="annot"><span class="annottext">paren_wct :: LHsWcType GhcRn
</span><a href="#local-6989586621680869875"><span class="hs-identifier hs-var hs-var">paren_wct</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LHsWcType GhcRn
</span><a href="#local-6989586621680869878"><span class="hs-identifier hs-var">t</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">hswc_body :: Located (HsType GhcRn)
</span><a href="GHC.Hs.Type.html#hswc_body"><span class="hs-identifier hs-var">hswc_body</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PprPrec -&gt; Located (HsType GhcRn) -&gt; Located (HsType GhcRn)
forall (p :: Pass).
PprPrec -&gt; LHsType (GhcPass p) -&gt; LHsType (GhcPass p)
</span><a href="GHC.Hs.Type.html#parenthesizeHsType"><span class="hs-identifier hs-var">parenthesizeHsType</span></a></span><span> </span><span class="annot"><span class="annottext">PprPrec
</span><a href="GHC.Types.Basic.html#appPrec"><span class="hs-identifier hs-var">appPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Located (HsType GhcRn)
</span><a href="#local-6989586621680869877"><span class="hs-identifier hs-var">t_body</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-219"></span><span>
</span><span id="line-220"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsAppTypes"><span class="hs-identifier hs-type">mkHsAppTypes</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Type.html#LHsWcType"><span class="hs-identifier hs-type">LHsWcType</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span>
</span><span id="line-221"></span><span id="mkHsAppTypes"><span class="annot"><span class="annottext">mkHsAppTypes :: Located (HsExpr GhcRn)
-&gt; [LHsWcType GhcRn] -&gt; Located (HsExpr GhcRn)
</span><a href="GHC.Hs.Utils.html#mkHsAppTypes"><span class="hs-identifier hs-var hs-var">mkHsAppTypes</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Located (HsExpr GhcRn)
 -&gt; LHsWcType GhcRn -&gt; Located (HsExpr GhcRn))
-&gt; Located (HsExpr GhcRn)
-&gt; [LHsWcType GhcRn]
-&gt; Located (HsExpr GhcRn)
forall (t :: * -&gt; *) b a.
Foldable t =&gt;
(b -&gt; a -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldl%27"><span class="hs-identifier hs-var">foldl'</span></a></span><span> </span><span class="annot"><span class="annottext">Located (HsExpr GhcRn) -&gt; LHsWcType GhcRn -&gt; Located (HsExpr GhcRn)
</span><a href="GHC.Hs.Utils.html#mkHsAppType"><span class="hs-identifier hs-var">mkHsAppType</span></a></span><span>
</span><span id="line-222"></span><span>
</span><span id="line-223"></span><span id="local-6989586621680870702"><span class="annot"><a href="GHC.Hs.Utils.html#mkHsLam"><span class="hs-identifier hs-type">mkHsLam</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#IsPass"><span class="hs-identifier hs-type">IsPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870702"><span class="hs-identifier hs-type">p</span></a></span><span>
</span><span id="line-224"></span><span>        </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#XMG"><span class="hs-identifier hs-type">XMG</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870702"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870702"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="hs-operator hs-type">~</span></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#NoExtField"><span class="hs-identifier hs-type">NoExtField</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-225"></span><span>        </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870702"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-226"></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870702"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-227"></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870702"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-228"></span><span id="mkHsLam"><span class="annot"><span class="annottext">mkHsLam :: forall (p :: Pass).
(IsPass p, XMG (GhcPass p) (LHsExpr (GhcPass p)) ~ NoExtField) =&gt;
[LPat (GhcPass p)] -&gt; LHsExpr (GhcPass p) -&gt; LHsExpr (GhcPass p)
</span><a href="GHC.Hs.Utils.html#mkHsLam"><span class="hs-identifier hs-var hs-var">mkHsLam</span></a></span></span><span> </span><span id="local-6989586621680869862"><span class="annot"><span class="annottext">[LPat (GhcPass p)]
</span><a href="#local-6989586621680869862"><span class="hs-identifier hs-var">pats</span></a></span></span><span> </span><span id="local-6989586621680869861"><span class="annot"><span class="annottext">LHsExpr (GhcPass p)
</span><a href="#local-6989586621680869861"><span class="hs-identifier hs-var">body</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LHsExpr (GhcPass p) -&gt; LHsExpr (GhcPass p)
forall (id :: Pass). LHsExpr (GhcPass id) -&gt; LHsExpr (GhcPass id)
</span><a href="GHC.Hs.Utils.html#mkHsPar"><span class="hs-identifier hs-var">mkHsPar</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; HsExpr (GhcPass p) -&gt; LHsExpr (GhcPass p)
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr (GhcPass p) -&gt; SrcSpan
forall l e. GenLocated l e -&gt; l
</span><a href="GHC.Types.SrcLoc.html#getLoc"><span class="hs-identifier hs-var">getLoc</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr (GhcPass p)
</span><a href="#local-6989586621680869861"><span class="hs-identifier hs-var">body</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XLam (GhcPass p)
-&gt; MatchGroup (GhcPass p) (LHsExpr (GhcPass p))
-&gt; HsExpr (GhcPass p)
forall p. XLam p -&gt; MatchGroup p (LHsExpr p) -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsLam"><span class="hs-identifier hs-var">HsLam</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XLam (GhcPass p)
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">MatchGroup (GhcPass p) (LHsExpr (GhcPass p))
</span><a href="#local-6989586621680869859"><span class="hs-identifier hs-var">matches</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-229"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-230"></span><span>    </span><span id="local-6989586621680869859"><span class="annot"><span class="annottext">matches :: MatchGroup (GhcPass p) (LHsExpr (GhcPass p))
</span><a href="#local-6989586621680869859"><span class="hs-identifier hs-var hs-var">matches</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Origin
-&gt; [LMatch (GhcPass p) (LHsExpr (GhcPass p))]
-&gt; MatchGroup (GhcPass p) (LHsExpr (GhcPass p))
forall name (body :: * -&gt; *).
(XMG name (Located (body name)) ~ NoExtField) =&gt;
Origin
-&gt; [LMatch name (Located (body name))]
-&gt; MatchGroup name (Located (body name))
</span><a href="GHC.Hs.Utils.html#mkMatchGroup"><span class="hs-identifier hs-var">mkMatchGroup</span></a></span><span> </span><span class="annot"><span class="annottext">Origin
</span><a href="GHC.Types.Basic.html#Generated"><span class="hs-identifier hs-var">Generated</span></a></span><span>
</span><span id="line-231"></span><span>                           </span><span class="hs-special">[</span><span class="annot"><span class="annottext">HsMatchContext (NoGhcTc (GhcPass p))
-&gt; [LPat (GhcPass p)]
-&gt; LHsExpr (GhcPass p)
-&gt; LMatch (GhcPass p) (LHsExpr (GhcPass p))
forall (p :: Pass) (body :: * -&gt; *).
HsMatchContext (NoGhcTc (GhcPass p))
-&gt; [LPat (GhcPass p)]
-&gt; Located (body (GhcPass p))
-&gt; LMatch (GhcPass p) (Located (body (GhcPass p)))
</span><a href="GHC.Hs.Utils.html#mkSimpleMatch"><span class="hs-identifier hs-var">mkSimpleMatch</span></a></span><span> </span><span class="annot"><span class="annottext">HsMatchContext (NoGhcTc (GhcPass p))
forall p. HsMatchContext p
</span><a href="GHC.Hs.Expr.html#LambdaExpr"><span class="hs-identifier hs-var">LambdaExpr</span></a></span><span> </span><span class="annot"><span class="annottext">[Located (Pat (GhcPass p))]
[LPat (GhcPass p)]
</span><a href="#local-6989586621680869856"><span class="hs-identifier hs-var">pats'</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr (GhcPass p)
</span><a href="#local-6989586621680869861"><span class="hs-identifier hs-var">body</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-232"></span><span>    </span><span id="local-6989586621680869856"><span class="annot"><span class="annottext">pats' :: [Located (Pat (GhcPass p))]
</span><a href="#local-6989586621680869856"><span class="hs-identifier hs-var hs-var">pats'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Located (Pat (GhcPass p)) -&gt; Located (Pat (GhcPass p)))
-&gt; [Located (Pat (GhcPass p))] -&gt; [Located (Pat (GhcPass p))]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PprPrec -&gt; LPat (GhcPass p) -&gt; LPat (GhcPass p)
forall (p :: Pass).
IsPass p =&gt;
PprPrec -&gt; LPat (GhcPass p) -&gt; LPat (GhcPass p)
</span><a href="GHC.Hs.Pat.html#parenthesizePat"><span class="hs-identifier hs-var">parenthesizePat</span></a></span><span> </span><span class="annot"><span class="annottext">PprPrec
</span><a href="GHC.Types.Basic.html#appPrec"><span class="hs-identifier hs-var">appPrec</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[Located (Pat (GhcPass p))]
[LPat (GhcPass p)]
</span><a href="#local-6989586621680869862"><span class="hs-identifier hs-var">pats</span></a></span><span>
</span><span id="line-233"></span><span>
</span><span id="line-234"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsLams"><span class="hs-identifier hs-type">mkHsLams</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.Var.html#TyVar"><span class="hs-identifier hs-type">TyVar</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.Var.html#EvVar"><span class="hs-identifier hs-type">EvVar</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span>
</span><span id="line-235"></span><span id="mkHsLams"><span class="annot"><span class="annottext">mkHsLams :: [Id] -&gt; [Id] -&gt; LHsExpr GhcTc -&gt; LHsExpr GhcTc
</span><a href="GHC.Hs.Utils.html#mkHsLams"><span class="hs-identifier hs-var hs-var">mkHsLams</span></a></span></span><span> </span><span id="local-6989586621680869852"><span class="annot"><span class="annottext">[Id]
</span><a href="#local-6989586621680869852"><span class="hs-identifier hs-var">tyvars</span></a></span></span><span> </span><span id="local-6989586621680869851"><span class="annot"><span class="annottext">[Id]
</span><a href="#local-6989586621680869851"><span class="hs-identifier hs-var">dicts</span></a></span></span><span> </span><span id="local-6989586621680869850"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621680869850"><span class="hs-identifier hs-var">expr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsWrapper -&gt; LHsExpr GhcTc -&gt; LHsExpr GhcTc
</span><a href="GHC.Hs.Utils.html#mkLHsWrap"><span class="hs-identifier hs-var">mkLHsWrap</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Id] -&gt; HsWrapper
</span><a href="GHC.Tc.Types.Evidence.html#mkWpTyLams"><span class="hs-identifier hs-var">mkWpTyLams</span></a></span><span> </span><span class="annot"><span class="annottext">[Id]
</span><a href="#local-6989586621680869852"><span class="hs-identifier hs-var">tyvars</span></a></span><span>
</span><span id="line-236"></span><span>                                       </span><span class="annot"><span class="annottext">HsWrapper -&gt; HsWrapper -&gt; HsWrapper
</span><a href="GHC.Tc.Types.Evidence.html#%3C.%3E"><span class="hs-operator hs-var">&lt;.&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Id] -&gt; HsWrapper
</span><a href="GHC.Tc.Types.Evidence.html#mkWpLams"><span class="hs-identifier hs-var">mkWpLams</span></a></span><span> </span><span class="annot"><span class="annottext">[Id]
</span><a href="#local-6989586621680869851"><span class="hs-identifier hs-var">dicts</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621680869850"><span class="hs-identifier hs-var">expr</span></a></span><span>
</span><span id="line-237"></span><span>
</span><span id="line-238"></span><span class="hs-comment">-- |A simple case alternative with a single pattern, no binds, no guards;</span><span>
</span><span id="line-239"></span><span class="hs-comment">-- pre-typechecking</span><span>
</span><span id="line-240"></span><span id="local-6989586621680870692"><span id="local-6989586621680870693"><span class="annot"><a href="GHC.Hs.Utils.html#mkHsCaseAlt"><span class="hs-identifier hs-type">mkHsCaseAlt</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870693"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680870692"><span class="hs-identifier hs-type">body</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870693"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-241"></span><span>            </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LMatch"><span class="hs-identifier hs-type">LMatch</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870693"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680870692"><span class="hs-identifier hs-type">body</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870693"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span></span></span><span>
</span><span id="line-242"></span><span id="mkHsCaseAlt"><span class="annot"><span class="annottext">mkHsCaseAlt :: forall (p :: Pass) (body :: * -&gt; *).
LPat (GhcPass p)
-&gt; Located (body (GhcPass p))
-&gt; LMatch (GhcPass p) (Located (body (GhcPass p)))
</span><a href="GHC.Hs.Utils.html#mkHsCaseAlt"><span class="hs-identifier hs-var hs-var">mkHsCaseAlt</span></a></span></span><span> </span><span id="local-6989586621680869846"><span class="annot"><span class="annottext">LPat (GhcPass p)
</span><a href="#local-6989586621680869846"><span class="hs-identifier hs-var">pat</span></a></span></span><span> </span><span id="local-6989586621680869845"><span class="annot"><span class="annottext">Located (body (GhcPass p))
</span><a href="#local-6989586621680869845"><span class="hs-identifier hs-var">expr</span></a></span></span><span>
</span><span id="line-243"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsMatchContext (NoGhcTc (GhcPass p))
-&gt; [LPat (GhcPass p)]
-&gt; Located (body (GhcPass p))
-&gt; LMatch (GhcPass p) (Located (body (GhcPass p)))
forall (p :: Pass) (body :: * -&gt; *).
HsMatchContext (NoGhcTc (GhcPass p))
-&gt; [LPat (GhcPass p)]
-&gt; Located (body (GhcPass p))
-&gt; LMatch (GhcPass p) (Located (body (GhcPass p)))
</span><a href="GHC.Hs.Utils.html#mkSimpleMatch"><span class="hs-identifier hs-var">mkSimpleMatch</span></a></span><span> </span><span class="annot"><span class="annottext">HsMatchContext (NoGhcTc (GhcPass p))
forall p. HsMatchContext p
</span><a href="GHC.Hs.Expr.html#CaseAlt"><span class="hs-identifier hs-var">CaseAlt</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">LPat (GhcPass p)
</span><a href="#local-6989586621680869846"><span class="hs-identifier hs-var">pat</span></a></span><span class="hs-special">]</span><span> </span><span class="annot"><span class="annottext">Located (body (GhcPass p))
</span><a href="#local-6989586621680869845"><span class="hs-identifier hs-var">expr</span></a></span><span>
</span><span id="line-244"></span><span>
</span><span id="line-245"></span><span class="annot"><a href="GHC.Hs.Utils.html#nlHsTyApp"><span class="hs-identifier hs-type">nlHsTyApp</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Var.html#Id"><span class="hs-identifier hs-type">Id</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Core.TyCo.Rep.html#Type"><span class="hs-identifier hs-type">Type</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span>
</span><span id="line-246"></span><span id="nlHsTyApp"><span class="annot"><span class="annottext">nlHsTyApp :: Id -&gt; [Type] -&gt; LHsExpr GhcTc
</span><a href="GHC.Hs.Utils.html#nlHsTyApp"><span class="hs-identifier hs-var hs-var">nlHsTyApp</span></a></span></span><span> </span><span id="local-6989586621680869843"><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680869843"><span class="hs-identifier hs-var">fun_id</span></a></span></span><span> </span><span id="local-6989586621680869842"><span class="annot"><span class="annottext">[Type]
</span><a href="#local-6989586621680869842"><span class="hs-identifier hs-var">tys</span></a></span></span><span>
</span><span id="line-247"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; LHsExpr GhcTc
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsWrapper -&gt; HsExpr GhcTc -&gt; HsExpr GhcTc
</span><a href="GHC.Hs.Utils.html#mkHsWrap"><span class="hs-identifier hs-var">mkHsWrap</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Type] -&gt; HsWrapper
</span><a href="GHC.Tc.Types.Evidence.html#mkWpTyApps"><span class="hs-identifier hs-var">mkWpTyApps</span></a></span><span> </span><span class="annot"><span class="annottext">[Type]
</span><a href="#local-6989586621680869842"><span class="hs-identifier hs-var">tys</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XVar GhcTc -&gt; Located (IdP GhcTc) -&gt; HsExpr GhcTc
forall p. XVar p -&gt; Located (IdP p) -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsVar"><span class="hs-identifier hs-var">HsVar</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XVar GhcTc
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Id -&gt; Located Id
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680869843"><span class="hs-identifier hs-var">fun_id</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-248"></span><span>
</span><span id="line-249"></span><span class="annot"><a href="GHC.Hs.Utils.html#nlHsTyApps"><span class="hs-identifier hs-type">nlHsTyApps</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Var.html#Id"><span class="hs-identifier hs-type">Id</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Core.TyCo.Rep.html#Type"><span class="hs-identifier hs-type">Type</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span>
</span><span id="line-250"></span><span id="nlHsTyApps"><span class="annot"><span class="annottext">nlHsTyApps :: Id -&gt; [Type] -&gt; [LHsExpr GhcTc] -&gt; LHsExpr GhcTc
</span><a href="GHC.Hs.Utils.html#nlHsTyApps"><span class="hs-identifier hs-var hs-var">nlHsTyApps</span></a></span></span><span> </span><span id="local-6989586621680869839"><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680869839"><span class="hs-identifier hs-var">fun_id</span></a></span></span><span> </span><span id="local-6989586621680869838"><span class="annot"><span class="annottext">[Type]
</span><a href="#local-6989586621680869838"><span class="hs-identifier hs-var">tys</span></a></span></span><span> </span><span id="local-6989586621680869837"><span class="annot"><span class="annottext">[LHsExpr GhcTc]
</span><a href="#local-6989586621680869837"><span class="hs-identifier hs-var">xs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(LHsExpr GhcTc -&gt; LHsExpr GhcTc -&gt; LHsExpr GhcTc)
-&gt; LHsExpr GhcTc -&gt; [LHsExpr GhcTc] -&gt; LHsExpr GhcTc
forall (t :: * -&gt; *) b a.
Foldable t =&gt;
(b -&gt; a -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldl%27"><span class="hs-identifier hs-var">foldl'</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; LHsExpr GhcTc -&gt; LHsExpr GhcTc
forall (id :: Pass).
IsPass id =&gt;
LHsExpr (GhcPass id)
-&gt; LHsExpr (GhcPass id) -&gt; LHsExpr (GhcPass id)
</span><a href="GHC.Hs.Utils.html#nlHsApp"><span class="hs-identifier hs-var">nlHsApp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Id -&gt; [Type] -&gt; LHsExpr GhcTc
</span><a href="GHC.Hs.Utils.html#nlHsTyApp"><span class="hs-identifier hs-var">nlHsTyApp</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680869839"><span class="hs-identifier hs-var">fun_id</span></a></span><span> </span><span class="annot"><span class="annottext">[Type]
</span><a href="#local-6989586621680869838"><span class="hs-identifier hs-var">tys</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[LHsExpr GhcTc]
</span><a href="#local-6989586621680869837"><span class="hs-identifier hs-var">xs</span></a></span><span>
</span><span id="line-251"></span><span>
</span><span id="line-252"></span><span class="hs-comment">--------- Adding parens ---------</span><span>
</span><span id="line-253"></span><span class="hs-comment">-- | Wrap in parens if @'hsExprNeedsParens' appPrec@ says it needs them</span><span>
</span><span id="line-254"></span><span class="hs-comment">-- So @f x@ becomes @(f x)@, but @3@ stays as @3@.</span><span>
</span><span id="line-255"></span><span id="local-6989586621680870685"><span class="annot"><a href="GHC.Hs.Utils.html#mkLHsPar"><span class="hs-identifier hs-type">mkLHsPar</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#IsPass"><span class="hs-identifier hs-type">IsPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870685"><span class="hs-identifier hs-type">id</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870685"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870685"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-256"></span><span id="mkLHsPar"><span class="annot"><span class="annottext">mkLHsPar :: forall (id :: Pass).
IsPass id =&gt;
LHsExpr (GhcPass id) -&gt; LHsExpr (GhcPass id)
</span><a href="GHC.Hs.Utils.html#mkLHsPar"><span class="hs-identifier hs-var hs-var">mkLHsPar</span></a></span></span><span> </span><span id="local-6989586621680869834"><span class="annot"><span class="annottext">le :: LHsExpr (GhcPass id)
</span><a href="#local-6989586621680869834"><span class="hs-identifier hs-var">le</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621680869833"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869833"><span class="hs-identifier hs-var">loc</span></a></span></span><span> </span><span id="local-6989586621680869832"><span class="annot"><span class="annottext">HsExpr (GhcPass id)
</span><a href="#local-6989586621680869832"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-257"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">PprPrec -&gt; HsExpr (GhcPass id) -&gt; Bool
forall (p :: Pass).
IsPass p =&gt;
PprPrec -&gt; HsExpr (GhcPass p) -&gt; Bool
</span><a href="GHC.Hs.Expr.html#hsExprNeedsParens"><span class="hs-identifier hs-var">hsExprNeedsParens</span></a></span><span> </span><span class="annot"><span class="annottext">PprPrec
</span><a href="GHC.Types.Basic.html#appPrec"><span class="hs-identifier hs-var">appPrec</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr (GhcPass id)
</span><a href="#local-6989586621680869832"><span class="hs-identifier hs-var">e</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; HsExpr (GhcPass id) -&gt; LHsExpr (GhcPass id)
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869833"><span class="hs-identifier hs-var">loc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XPar (GhcPass id) -&gt; LHsExpr (GhcPass id) -&gt; HsExpr (GhcPass id)
forall p. XPar p -&gt; LHsExpr p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsPar"><span class="hs-identifier hs-var">HsPar</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XPar (GhcPass id)
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr (GhcPass id)
</span><a href="#local-6989586621680869834"><span class="hs-identifier hs-var">le</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-258"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>                   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LHsExpr (GhcPass id)
</span><a href="#local-6989586621680869834"><span class="hs-identifier hs-var">le</span></a></span><span>
</span><span id="line-259"></span><span>
</span><span id="line-260"></span><span id="local-6989586621680870682"><span class="annot"><a href="GHC.Hs.Utils.html#mkParPat"><span class="hs-identifier hs-type">mkParPat</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#IsPass"><span class="hs-identifier hs-type">IsPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870682"><span class="hs-identifier hs-type">p</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870682"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870682"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-261"></span><span id="mkParPat"><span class="annot"><span class="annottext">mkParPat :: forall (p :: Pass).
IsPass p =&gt;
LPat (GhcPass p) -&gt; LPat (GhcPass p)
</span><a href="GHC.Hs.Utils.html#mkParPat"><span class="hs-identifier hs-var hs-var">mkParPat</span></a></span></span><span> </span><span id="local-6989586621680869828"><span class="annot"><span class="annottext">lp :: LPat (GhcPass p)
</span><a href="#local-6989586621680869828"><span class="hs-identifier hs-var">lp</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621680869827"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869827"><span class="hs-identifier hs-var">loc</span></a></span></span><span> </span><span id="local-6989586621680869826"><span class="annot"><span class="annottext">Pat (GhcPass p)
</span><a href="#local-6989586621680869826"><span class="hs-identifier hs-var">p</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-262"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">PprPrec -&gt; Pat (GhcPass p) -&gt; Bool
forall (p :: Pass). IsPass p =&gt; PprPrec -&gt; Pat (GhcPass p) -&gt; Bool
</span><a href="GHC.Hs.Pat.html#patNeedsParens"><span class="hs-identifier hs-var">patNeedsParens</span></a></span><span> </span><span class="annot"><span class="annottext">PprPrec
</span><a href="GHC.Types.Basic.html#appPrec"><span class="hs-identifier hs-var">appPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Pat (GhcPass p)
</span><a href="#local-6989586621680869826"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; Pat (GhcPass p) -&gt; GenLocated SrcSpan (Pat (GhcPass p))
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869827"><span class="hs-identifier hs-var">loc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XParPat (GhcPass p) -&gt; LPat (GhcPass p) -&gt; Pat (GhcPass p)
forall p. XParPat p -&gt; LPat p -&gt; Pat p
</span><a href="GHC.Hs.Pat.html#ParPat"><span class="hs-identifier hs-var">ParPat</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XParPat (GhcPass p)
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">LPat (GhcPass p)
</span><a href="#local-6989586621680869828"><span class="hs-identifier hs-var">lp</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-263"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>                </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LPat (GhcPass p)
</span><a href="#local-6989586621680869828"><span class="hs-identifier hs-var">lp</span></a></span><span>
</span><span id="line-264"></span><span>
</span><span id="line-265"></span><span id="local-6989586621680870677"><span class="annot"><a href="GHC.Hs.Utils.html#nlParPat"><span class="hs-identifier hs-type">nlParPat</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870677"><span class="hs-identifier hs-type">name</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870677"><span class="hs-identifier hs-type">name</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-266"></span><span id="nlParPat"><span class="annot"><span class="annottext">nlParPat :: forall (name :: Pass). LPat (GhcPass name) -&gt; LPat (GhcPass name)
</span><a href="GHC.Hs.Utils.html#nlParPat"><span class="hs-identifier hs-var hs-var">nlParPat</span></a></span></span><span> </span><span id="local-6989586621680869823"><span class="annot"><span class="annottext">LPat (GhcPass name)
</span><a href="#local-6989586621680869823"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Pat (GhcPass name) -&gt; Located (Pat (GhcPass name))
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XParPat (GhcPass name) -&gt; LPat (GhcPass name) -&gt; Pat (GhcPass name)
forall p. XParPat p -&gt; LPat p -&gt; Pat p
</span><a href="GHC.Hs.Pat.html#ParPat"><span class="hs-identifier hs-var">ParPat</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XParPat (GhcPass name)
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">LPat (GhcPass name)
</span><a href="#local-6989586621680869823"><span class="hs-identifier hs-var">p</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-267"></span><span>
</span><span id="line-268"></span><span class="hs-comment">-------------------------------</span><span>
</span><span id="line-269"></span><span class="hs-comment">-- These are the bits of syntax that contain rebindable names</span><span>
</span><span id="line-270"></span><span class="hs-comment">-- See GHC.Rename.Env.lookupSyntax</span><span>
</span><span id="line-271"></span><span>
</span><span id="line-272"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsIntegral"><span class="hs-identifier hs-type">mkHsIntegral</span></a></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Basic.html#IntegralLit"><span class="hs-identifier hs-type">IntegralLit</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Lit.html#HsOverLit"><span class="hs-identifier hs-type">HsOverLit</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-273"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsFractional"><span class="hs-identifier hs-type">mkHsFractional</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Basic.html#FractionalLit"><span class="hs-identifier hs-type">FractionalLit</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Lit.html#HsOverLit"><span class="hs-identifier hs-type">HsOverLit</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-274"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsIsString"><span class="hs-identifier hs-type">mkHsIsString</span></a></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Basic.html#SourceText"><span class="hs-identifier hs-type">SourceText</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Lit.html#HsOverLit"><span class="hs-identifier hs-type">HsOverLit</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-275"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsDo"><span class="hs-identifier hs-type">mkHsDo</span></a></span><span>         </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsStmtContext"><span class="hs-identifier hs-type">HsStmtContext</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#ExprLStmt"><span class="hs-identifier hs-type">ExprLStmt</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsExpr"><span class="hs-identifier hs-type">HsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-276"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsComp"><span class="hs-identifier hs-type">mkHsComp</span></a></span><span>       </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsStmtContext"><span class="hs-identifier hs-type">HsStmtContext</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#ExprLStmt"><span class="hs-identifier hs-type">ExprLStmt</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-277"></span><span>               </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsExpr"><span class="hs-identifier hs-type">HsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-278"></span><span>
</span><span id="line-279"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkNPat"><span class="hs-identifier hs-type">mkNPat</span></a></span><span>      </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Lit.html#HsOverLit"><span class="hs-identifier hs-type">HsOverLit</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#SyntaxExpr"><span class="hs-identifier hs-type">SyntaxExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-280"></span><span>            </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#Pat"><span class="hs-identifier hs-type">Pat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-281"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkNPlusKPat"><span class="hs-identifier hs-type">mkNPlusKPat</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="annot"><a href="GHC.Types.Name.Reader.html#RdrName"><span class="hs-identifier hs-type">RdrName</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Lit.html#HsOverLit"><span class="hs-identifier hs-type">HsOverLit</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#Pat"><span class="hs-identifier hs-type">Pat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-282"></span><span>
</span><span id="line-283"></span><span class="hs-comment">-- NB: The following functions all use noSyntaxExpr: the generated expressions</span><span>
</span><span id="line-284"></span><span class="hs-comment">--     will not work with rebindable syntax if used after the renamer</span><span>
</span><span id="line-285"></span><span id="local-6989586621680870659"><span id="local-6989586621680870660"><span id="local-6989586621680870661"><span class="annot"><a href="GHC.Hs.Utils.html#mkLastStmt"><span class="hs-identifier hs-type">mkLastStmt</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#IsPass"><span class="hs-identifier hs-type">IsPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870661"><span class="hs-identifier hs-type">idR</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680870660"><span class="hs-identifier hs-type">bodyR</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870661"><span class="hs-identifier hs-type">idR</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-286"></span><span>           </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#StmtLR"><span class="hs-identifier hs-type">StmtLR</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870659"><span class="hs-identifier hs-type">idL</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870661"><span class="hs-identifier hs-type">idR</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680870660"><span class="hs-identifier hs-type">bodyR</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870661"><span class="hs-identifier hs-type">idR</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span></span></span></span><span>
</span><span id="line-287"></span><span id="local-6989586621680870635"><span id="local-6989586621680870636"><span class="annot"><a href="GHC.Hs.Utils.html#mkBodyStmt"><span class="hs-identifier hs-type">mkBodyStmt</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680870636"><span class="hs-identifier hs-type">bodyR</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-288"></span><span>           </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#StmtLR"><span class="hs-identifier hs-type">StmtLR</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870635"><span class="hs-identifier hs-type">idL</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680870636"><span class="hs-identifier hs-type">bodyR</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span></span></span><span>
</span><span id="line-289"></span><span id="local-6989586621680870631"><span class="annot"><a href="GHC.Hs.Utils.html#mkPsBindStmt"><span class="hs-identifier hs-type">mkPsBindStmt</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680870631"><span class="hs-identifier hs-type">bodyR</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-290"></span><span>             </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#StmtLR"><span class="hs-identifier hs-type">StmtLR</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680870631"><span class="hs-identifier hs-type">bodyR</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span></span><span>
</span><span id="line-291"></span><span id="local-6989586621680870628"><span class="annot"><a href="GHC.Hs.Utils.html#mkRnBindStmt"><span class="hs-identifier hs-type">mkRnBindStmt</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680870628"><span class="hs-identifier hs-type">bodyR</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-292"></span><span>             </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#StmtLR"><span class="hs-identifier hs-type">StmtLR</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680870628"><span class="hs-identifier hs-type">bodyR</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span></span><span>
</span><span id="line-293"></span><span id="local-6989586621680870624"><span class="annot"><a href="GHC.Hs.Utils.html#mkTcBindStmt"><span class="hs-identifier hs-type">mkTcBindStmt</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680870624"><span class="hs-identifier hs-type">bodyR</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-294"></span><span>             </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#StmtLR"><span class="hs-identifier hs-type">StmtLR</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680870624"><span class="hs-identifier hs-type">bodyR</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span></span><span>
</span><span id="line-295"></span><span>
</span><span id="line-296"></span><span id="local-6989586621680870611"><span id="local-6989586621680870612"><span class="annot"><a href="GHC.Hs.Utils.html#emptyRecStmt"><span class="hs-identifier hs-type">emptyRecStmt</span></a></span><span>     </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#StmtLR"><span class="hs-identifier hs-type">StmtLR</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870612"><span class="hs-identifier hs-type">idL</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870611"><span class="hs-identifier hs-type">bodyR</span></a></span></span></span><span>
</span><span id="line-297"></span><span id="local-6989586621680870608"><span class="annot"><a href="GHC.Hs.Utils.html#emptyRecStmtName"><span class="hs-identifier hs-type">emptyRecStmtName</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#StmtLR"><span class="hs-identifier hs-type">StmtLR</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870608"><span class="hs-identifier hs-type">bodyR</span></a></span></span><span>
</span><span id="line-298"></span><span id="local-6989586621680870606"><span class="annot"><a href="GHC.Hs.Utils.html#emptyRecStmtId"><span class="hs-identifier hs-type">emptyRecStmtId</span></a></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#StmtLR"><span class="hs-identifier hs-type">StmtLR</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870606"><span class="hs-identifier hs-type">bodyR</span></a></span></span><span>
</span><span id="line-299"></span><span id="local-6989586621680870603"><span id="local-6989586621680870604"><span class="annot"><a href="GHC.Hs.Utils.html#mkRecStmt"><span class="hs-identifier hs-type">mkRecStmt</span></a></span><span>        </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#LStmtLR"><span class="hs-identifier hs-type">LStmtLR</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870604"><span class="hs-identifier hs-type">idL</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870603"><span class="hs-identifier hs-type">bodyR</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-300"></span><span>                 </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#StmtLR"><span class="hs-identifier hs-type">StmtLR</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870604"><span class="hs-identifier hs-type">idL</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870603"><span class="hs-identifier hs-type">bodyR</span></a></span></span></span><span>
</span><span id="line-301"></span><span>
</span><span id="line-302"></span><span>
</span><span id="line-303"></span><span id="mkHsIntegral"><span class="annot"><span class="annottext">mkHsIntegral :: IntegralLit -&gt; HsOverLit GhcPs
</span><a href="GHC.Hs.Utils.html#mkHsIntegral"><span class="hs-identifier hs-var hs-var">mkHsIntegral</span></a></span></span><span>     </span><span id="local-6989586621680869822"><span class="annot"><span class="annottext">IntegralLit
</span><a href="#local-6989586621680869822"><span class="hs-identifier hs-var">i</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XOverLit GhcPs -&gt; OverLitVal -&gt; HsExpr GhcPs -&gt; HsOverLit GhcPs
forall p. XOverLit p -&gt; OverLitVal -&gt; HsExpr p -&gt; HsOverLit p
</span><a href="GHC.Hs.Lit.html#OverLit"><span class="hs-identifier hs-var">OverLit</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XOverLit GhcPs
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IntegralLit -&gt; OverLitVal
</span><a href="GHC.Hs.Lit.html#HsIntegral"><span class="hs-identifier hs-var">HsIntegral</span></a></span><span>       </span><span class="annot"><span class="annottext">IntegralLit
</span><a href="#local-6989586621680869822"><span class="hs-identifier hs-var">i</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcPs
forall (p :: Pass). HsExpr (GhcPass p)
</span><a href="GHC.Hs.Expr.html#noExpr"><span class="hs-identifier hs-var">noExpr</span></a></span><span>
</span><span id="line-304"></span><span id="mkHsFractional"><span class="annot"><span class="annottext">mkHsFractional :: FractionalLit -&gt; HsOverLit GhcPs
</span><a href="GHC.Hs.Utils.html#mkHsFractional"><span class="hs-identifier hs-var hs-var">mkHsFractional</span></a></span></span><span>   </span><span id="local-6989586621680869818"><span class="annot"><span class="annottext">FractionalLit
</span><a href="#local-6989586621680869818"><span class="hs-identifier hs-var">f</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XOverLit GhcPs -&gt; OverLitVal -&gt; HsExpr GhcPs -&gt; HsOverLit GhcPs
forall p. XOverLit p -&gt; OverLitVal -&gt; HsExpr p -&gt; HsOverLit p
</span><a href="GHC.Hs.Lit.html#OverLit"><span class="hs-identifier hs-var">OverLit</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XOverLit GhcPs
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FractionalLit -&gt; OverLitVal
</span><a href="GHC.Hs.Lit.html#HsFractional"><span class="hs-identifier hs-var">HsFractional</span></a></span><span>     </span><span class="annot"><span class="annottext">FractionalLit
</span><a href="#local-6989586621680869818"><span class="hs-identifier hs-var">f</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcPs
forall (p :: Pass). HsExpr (GhcPass p)
</span><a href="GHC.Hs.Expr.html#noExpr"><span class="hs-identifier hs-var">noExpr</span></a></span><span>
</span><span id="line-305"></span><span id="mkHsIsString"><span class="annot"><span class="annottext">mkHsIsString :: SourceText -&gt; FastString -&gt; HsOverLit GhcPs
</span><a href="GHC.Hs.Utils.html#mkHsIsString"><span class="hs-identifier hs-var hs-var">mkHsIsString</span></a></span></span><span> </span><span id="local-6989586621680869816"><span class="annot"><span class="annottext">SourceText
</span><a href="#local-6989586621680869816"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621680869815"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680869815"><span class="hs-identifier hs-var">s</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XOverLit GhcPs -&gt; OverLitVal -&gt; HsExpr GhcPs -&gt; HsOverLit GhcPs
forall p. XOverLit p -&gt; OverLitVal -&gt; HsExpr p -&gt; HsOverLit p
</span><a href="GHC.Hs.Lit.html#OverLit"><span class="hs-identifier hs-var">OverLit</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XOverLit GhcPs
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SourceText -&gt; FastString -&gt; OverLitVal
</span><a href="GHC.Hs.Lit.html#HsIsString"><span class="hs-identifier hs-var">HsIsString</span></a></span><span>   </span><span class="annot"><span class="annottext">SourceText
</span><a href="#local-6989586621680869816"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680869815"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcPs
forall (p :: Pass). HsExpr (GhcPass p)
</span><a href="GHC.Hs.Expr.html#noExpr"><span class="hs-identifier hs-var">noExpr</span></a></span><span>
</span><span id="line-306"></span><span>
</span><span id="line-307"></span><span id="mkHsDo"><span class="annot"><span class="annottext">mkHsDo :: HsStmtContext GhcRn -&gt; [ExprLStmt GhcPs] -&gt; HsExpr GhcPs
</span><a href="GHC.Hs.Utils.html#mkHsDo"><span class="hs-identifier hs-var hs-var">mkHsDo</span></a></span></span><span> </span><span id="local-6989586621680869813"><span class="annot"><span class="annottext">HsStmtContext GhcRn
</span><a href="#local-6989586621680869813"><span class="hs-identifier hs-var">ctxt</span></a></span></span><span> </span><span id="local-6989586621680869812"><span class="annot"><span class="annottext">[ExprLStmt GhcPs]
</span><a href="#local-6989586621680869812"><span class="hs-identifier hs-var">stmts</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XDo GhcPs
-&gt; HsStmtContext GhcRn -&gt; Located [ExprLStmt GhcPs] -&gt; HsExpr GhcPs
forall p.
XDo p -&gt; HsStmtContext GhcRn -&gt; Located [ExprLStmt p] -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsDo"><span class="hs-identifier hs-var">HsDo</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XDo GhcPs
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">HsStmtContext GhcRn
</span><a href="#local-6989586621680869813"><span class="hs-identifier hs-var">ctxt</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[ExprLStmt GhcPs] -&gt; Located [ExprLStmt GhcPs]
forall a. [Located a] -&gt; Located [Located a]
</span><a href="GHC.Hs.Utils.html#mkLocatedList"><span class="hs-identifier hs-var">mkLocatedList</span></a></span><span> </span><span class="annot"><span class="annottext">[ExprLStmt GhcPs]
</span><a href="#local-6989586621680869812"><span class="hs-identifier hs-var">stmts</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-308"></span><span id="mkHsComp"><span class="annot"><span class="annottext">mkHsComp :: HsStmtContext GhcRn
-&gt; [ExprLStmt GhcPs] -&gt; Located (HsExpr GhcPs) -&gt; HsExpr GhcPs
</span><a href="GHC.Hs.Utils.html#mkHsComp"><span class="hs-identifier hs-var hs-var">mkHsComp</span></a></span></span><span> </span><span id="local-6989586621680869810"><span class="annot"><span class="annottext">HsStmtContext GhcRn
</span><a href="#local-6989586621680869810"><span class="hs-identifier hs-var">ctxt</span></a></span></span><span> </span><span id="local-6989586621680869809"><span class="annot"><span class="annottext">[ExprLStmt GhcPs]
</span><a href="#local-6989586621680869809"><span class="hs-identifier hs-var">stmts</span></a></span></span><span> </span><span id="local-6989586621680869808"><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869808"><span class="hs-identifier hs-var">expr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsStmtContext GhcRn -&gt; [ExprLStmt GhcPs] -&gt; HsExpr GhcPs
</span><a href="GHC.Hs.Utils.html#mkHsDo"><span class="hs-identifier hs-var">mkHsDo</span></a></span><span> </span><span class="annot"><span class="annottext">HsStmtContext GhcRn
</span><a href="#local-6989586621680869810"><span class="hs-identifier hs-var">ctxt</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[ExprLStmt GhcPs]
</span><a href="#local-6989586621680869809"><span class="hs-identifier hs-var">stmts</span></a></span><span> </span><span class="annot"><span class="annottext">[ExprLStmt GhcPs] -&gt; [ExprLStmt GhcPs] -&gt; [ExprLStmt GhcPs]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">ExprLStmt GhcPs
</span><a href="#local-6989586621680869807"><span class="hs-identifier hs-var">last_stmt</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span><span>
</span><span id="line-309"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-310"></span><span>    </span><span id="local-6989586621680869807"><span class="annot"><span class="annottext">last_stmt :: ExprLStmt GhcPs
</span><a href="#local-6989586621680869807"><span class="hs-identifier hs-var hs-var">last_stmt</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SrcSpan
-&gt; StmtLR GhcPs GhcPs (Located (HsExpr GhcPs)) -&gt; ExprLStmt GhcPs
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Located (HsExpr GhcPs) -&gt; SrcSpan
forall l e. GenLocated l e -&gt; l
</span><a href="GHC.Types.SrcLoc.html#getLoc"><span class="hs-identifier hs-var">getLoc</span></a></span><span> </span><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869808"><span class="hs-identifier hs-var">expr</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(StmtLR GhcPs GhcPs (Located (HsExpr GhcPs)) -&gt; ExprLStmt GhcPs)
-&gt; StmtLR GhcPs GhcPs (Located (HsExpr GhcPs)) -&gt; ExprLStmt GhcPs
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
-&gt; StmtLR GhcPs GhcPs (Located (HsExpr GhcPs))
forall (idR :: Pass) (bodyR :: * -&gt; *) (idL :: Pass).
IsPass idR =&gt;
Located (bodyR (GhcPass idR))
-&gt; StmtLR
     (GhcPass idL) (GhcPass idR) (Located (bodyR (GhcPass idR)))
</span><a href="GHC.Hs.Utils.html#mkLastStmt"><span class="hs-identifier hs-var">mkLastStmt</span></a></span><span> </span><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869808"><span class="hs-identifier hs-var">expr</span></a></span><span>
</span><span id="line-311"></span><span>
</span><span id="line-312"></span><span class="hs-comment">-- restricted to GhcPs because other phases might need a SyntaxExpr</span><span>
</span><span id="line-313"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsIf"><span class="hs-identifier hs-type">mkHsIf</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsExpr"><span class="hs-identifier hs-type">HsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-314"></span><span id="mkHsIf"><span class="annot"><span class="annottext">mkHsIf :: Located (HsExpr GhcPs)
-&gt; Located (HsExpr GhcPs) -&gt; Located (HsExpr GhcPs) -&gt; HsExpr GhcPs
</span><a href="GHC.Hs.Utils.html#mkHsIf"><span class="hs-identifier hs-var hs-var">mkHsIf</span></a></span></span><span> </span><span id="local-6989586621680869806"><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869806"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span id="local-6989586621680869805"><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869805"><span class="hs-identifier hs-var">a</span></a></span></span><span> </span><span id="local-6989586621680869804"><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869804"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XIf GhcPs
-&gt; Located (HsExpr GhcPs)
-&gt; Located (HsExpr GhcPs)
-&gt; Located (HsExpr GhcPs)
-&gt; HsExpr GhcPs
forall p. XIf p -&gt; LHsExpr p -&gt; LHsExpr p -&gt; LHsExpr p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsIf"><span class="hs-identifier hs-var">HsIf</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XIf GhcPs
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869806"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869805"><span class="hs-identifier hs-var">a</span></a></span><span> </span><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869804"><span class="hs-identifier hs-var">b</span></a></span><span>
</span><span id="line-315"></span><span>
</span><span id="line-316"></span><span class="hs-comment">-- restricted to GhcPs because other phases might need a SyntaxExpr</span><span>
</span><span id="line-317"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsCmdIf"><span class="hs-identifier hs-type">mkHsCmdIf</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsCmd"><span class="hs-identifier hs-type">LHsCmd</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsCmd"><span class="hs-identifier hs-type">LHsCmd</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsCmd"><span class="hs-identifier hs-type">HsCmd</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-318"></span><span id="mkHsCmdIf"><span class="annot"><span class="annottext">mkHsCmdIf :: Located (HsExpr GhcPs)
-&gt; LHsCmd GhcPs -&gt; LHsCmd GhcPs -&gt; HsCmd GhcPs
</span><a href="GHC.Hs.Utils.html#mkHsCmdIf"><span class="hs-identifier hs-var hs-var">mkHsCmdIf</span></a></span></span><span> </span><span id="local-6989586621680869802"><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869802"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span id="local-6989586621680869801"><span class="annot"><span class="annottext">LHsCmd GhcPs
</span><a href="#local-6989586621680869801"><span class="hs-identifier hs-var">a</span></a></span></span><span> </span><span id="local-6989586621680869800"><span class="annot"><span class="annottext">LHsCmd GhcPs
</span><a href="#local-6989586621680869800"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XCmdIf GhcPs
-&gt; SyntaxExpr GhcPs
-&gt; Located (HsExpr GhcPs)
-&gt; LHsCmd GhcPs
-&gt; LHsCmd GhcPs
-&gt; HsCmd GhcPs
forall id.
XCmdIf id
-&gt; SyntaxExpr id
-&gt; LHsExpr id
-&gt; LHsCmd id
-&gt; LHsCmd id
-&gt; HsCmd id
</span><a href="GHC.Hs.Expr.html#HsCmdIf"><span class="hs-identifier hs-var">HsCmdIf</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XCmdIf GhcPs
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcPs
forall (p :: Pass). IsPass p =&gt; SyntaxExpr (GhcPass p)
</span><a href="GHC.Hs.Expr.html#noSyntaxExpr"><span class="hs-identifier hs-var">noSyntaxExpr</span></a></span><span> </span><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869802"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">LHsCmd GhcPs
</span><a href="#local-6989586621680869801"><span class="hs-identifier hs-var">a</span></a></span><span> </span><span class="annot"><span class="annottext">LHsCmd GhcPs
</span><a href="#local-6989586621680869800"><span class="hs-identifier hs-var">b</span></a></span><span>
</span><span id="line-319"></span><span>
</span><span id="line-320"></span><span id="mkNPat"><span class="annot"><span class="annottext">mkNPat :: Located (HsOverLit GhcPs) -&gt; Maybe (SyntaxExpr GhcPs) -&gt; Pat GhcPs
</span><a href="GHC.Hs.Utils.html#mkNPat"><span class="hs-identifier hs-var hs-var">mkNPat</span></a></span></span><span> </span><span id="local-6989586621680869797"><span class="annot"><span class="annottext">Located (HsOverLit GhcPs)
</span><a href="#local-6989586621680869797"><span class="hs-identifier hs-var">lit</span></a></span></span><span> </span><span id="local-6989586621680869796"><span class="annot"><span class="annottext">Maybe (SyntaxExpr GhcPs)
</span><a href="#local-6989586621680869796"><span class="hs-identifier hs-var">neg</span></a></span></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XNPat GhcPs
-&gt; Located (HsOverLit GhcPs)
-&gt; Maybe (SyntaxExpr GhcPs)
-&gt; SyntaxExpr GhcPs
-&gt; Pat GhcPs
forall p.
XNPat p
-&gt; Located (HsOverLit p)
-&gt; Maybe (SyntaxExpr p)
-&gt; SyntaxExpr p
-&gt; Pat p
</span><a href="GHC.Hs.Pat.html#NPat"><span class="hs-identifier hs-var">NPat</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XNPat GhcPs
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">Located (HsOverLit GhcPs)
</span><a href="#local-6989586621680869797"><span class="hs-identifier hs-var">lit</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe (SyntaxExpr GhcPs)
</span><a href="#local-6989586621680869796"><span class="hs-identifier hs-var">neg</span></a></span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcPs
forall (p :: Pass). IsPass p =&gt; SyntaxExpr (GhcPass p)
</span><a href="GHC.Hs.Expr.html#noSyntaxExpr"><span class="hs-identifier hs-var">noSyntaxExpr</span></a></span><span>
</span><span id="line-321"></span><span id="mkNPlusKPat"><span class="annot"><span class="annottext">mkNPlusKPat :: Located RdrName -&gt; Located (HsOverLit GhcPs) -&gt; Pat GhcPs
</span><a href="GHC.Hs.Utils.html#mkNPlusKPat"><span class="hs-identifier hs-var hs-var">mkNPlusKPat</span></a></span></span><span> </span><span id="local-6989586621680869794"><span class="annot"><span class="annottext">Located RdrName
</span><a href="#local-6989586621680869794"><span class="hs-identifier hs-var">id</span></a></span></span><span> </span><span id="local-6989586621680869793"><span class="annot"><span class="annottext">Located (HsOverLit GhcPs)
</span><a href="#local-6989586621680869793"><span class="hs-identifier hs-var">lit</span></a></span></span><span>
</span><span id="line-322"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XNPlusKPat GhcPs
-&gt; Located (IdP GhcPs)
-&gt; Located (HsOverLit GhcPs)
-&gt; HsOverLit GhcPs
-&gt; SyntaxExpr GhcPs
-&gt; SyntaxExpr GhcPs
-&gt; Pat GhcPs
forall p.
XNPlusKPat p
-&gt; Located (IdP p)
-&gt; Located (HsOverLit p)
-&gt; HsOverLit p
-&gt; SyntaxExpr p
-&gt; SyntaxExpr p
-&gt; Pat p
</span><a href="GHC.Hs.Pat.html#NPlusKPat"><span class="hs-identifier hs-var">NPlusKPat</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XNPlusKPat GhcPs
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">Located RdrName
Located (IdP GhcPs)
</span><a href="#local-6989586621680869794"><span class="hs-identifier hs-var">id</span></a></span><span> </span><span class="annot"><span class="annottext">Located (HsOverLit GhcPs)
</span><a href="#local-6989586621680869793"><span class="hs-identifier hs-var">lit</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Located (HsOverLit GhcPs) -&gt; HsOverLit GhcPs
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span> </span><span class="annot"><span class="annottext">Located (HsOverLit GhcPs)
</span><a href="#local-6989586621680869793"><span class="hs-identifier hs-var">lit</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcPs
forall (p :: Pass). IsPass p =&gt; SyntaxExpr (GhcPass p)
</span><a href="GHC.Hs.Expr.html#noSyntaxExpr"><span class="hs-identifier hs-var">noSyntaxExpr</span></a></span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcPs
forall (p :: Pass). IsPass p =&gt; SyntaxExpr (GhcPass p)
</span><a href="GHC.Hs.Expr.html#noSyntaxExpr"><span class="hs-identifier hs-var">noSyntaxExpr</span></a></span><span>
</span><span id="line-323"></span><span>
</span><span id="line-324"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkTransformStmt"><span class="hs-identifier hs-type">mkTransformStmt</span></a></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#ExprLStmt"><span class="hs-identifier hs-type">ExprLStmt</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-325"></span><span>                   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#StmtLR"><span class="hs-identifier hs-type">StmtLR</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-326"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkTransformByStmt"><span class="hs-identifier hs-type">mkTransformByStmt</span></a></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#ExprLStmt"><span class="hs-identifier hs-type">ExprLStmt</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-327"></span><span>                   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#StmtLR"><span class="hs-identifier hs-type">StmtLR</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-328"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkGroupUsingStmt"><span class="hs-identifier hs-type">mkGroupUsingStmt</span></a></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#ExprLStmt"><span class="hs-identifier hs-type">ExprLStmt</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-329"></span><span>                   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#StmtLR"><span class="hs-identifier hs-type">StmtLR</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-330"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkGroupByUsingStmt"><span class="hs-identifier hs-type">mkGroupByUsingStmt</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#ExprLStmt"><span class="hs-identifier hs-type">ExprLStmt</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-331"></span><span>                   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-332"></span><span>                   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#StmtLR"><span class="hs-identifier hs-type">StmtLR</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-333"></span><span>
</span><span id="line-334"></span><span class="annot"><a href="GHC.Hs.Utils.html#emptyTransStmt"><span class="hs-identifier hs-type">emptyTransStmt</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#StmtLR"><span class="hs-identifier hs-type">StmtLR</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-335"></span><span id="emptyTransStmt"><span class="annot"><span class="annottext">emptyTransStmt :: StmtLR GhcPs GhcPs (Located (HsExpr GhcPs))
</span><a href="GHC.Hs.Utils.html#emptyTransStmt"><span class="hs-identifier hs-var hs-var">emptyTransStmt</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TransStmt :: forall idL idR body.
XTransStmt idL idR body
-&gt; TransForm
-&gt; [ExprLStmt idL]
-&gt; [(IdP idR, IdP idR)]
-&gt; LHsExpr idR
-&gt; Maybe (LHsExpr idR)
-&gt; SyntaxExpr idR
-&gt; SyntaxExpr idR
-&gt; HsExpr idR
-&gt; StmtLR idL idR body
</span><a href="GHC.Hs.Expr.html#TransStmt"><span class="hs-identifier hs-type">TransStmt</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">trS_ext :: XTransStmt GhcPs GhcPs (Located (HsExpr GhcPs))
</span><a href="GHC.Hs.Expr.html#trS_ext"><span class="hs-identifier hs-var">trS_ext</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NoExtField
XTransStmt GhcPs GhcPs (Located (HsExpr GhcPs))
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span>
</span><span id="line-336"></span><span>                           </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">trS_form :: TransForm
</span><a href="GHC.Hs.Expr.html#trS_form"><span class="hs-identifier hs-var">trS_form</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; TransForm
forall a. String -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#panic"><span class="hs-identifier hs-var">panic</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;emptyTransStmt: form&quot;</span></span><span>
</span><span id="line-337"></span><span>                           </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">trS_stmts :: [ExprLStmt GhcPs]
</span><a href="GHC.Hs.Expr.html#trS_stmts"><span class="hs-identifier hs-var">trS_stmts</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">trS_bndrs :: [(IdP GhcPs, IdP GhcPs)]
</span><a href="GHC.Hs.Expr.html#trS_bndrs"><span class="hs-identifier hs-var">trS_bndrs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-338"></span><span>                           </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">trS_by :: Maybe (Located (HsExpr GhcPs))
</span><a href="GHC.Hs.Expr.html#trS_by"><span class="hs-identifier hs-var">trS_by</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe (Located (HsExpr GhcPs))
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">trS_using :: Located (HsExpr GhcPs)
</span><a href="GHC.Hs.Expr.html#trS_using"><span class="hs-identifier hs-var">trS_using</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcPs -&gt; Located (HsExpr GhcPs)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcPs
forall (p :: Pass). HsExpr (GhcPass p)
</span><a href="GHC.Hs.Expr.html#noExpr"><span class="hs-identifier hs-var">noExpr</span></a></span><span>
</span><span id="line-339"></span><span>                           </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">trS_ret :: SyntaxExpr GhcPs
</span><a href="GHC.Hs.Expr.html#trS_ret"><span class="hs-identifier hs-var">trS_ret</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcPs
forall (p :: Pass). IsPass p =&gt; SyntaxExpr (GhcPass p)
</span><a href="GHC.Hs.Expr.html#noSyntaxExpr"><span class="hs-identifier hs-var">noSyntaxExpr</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">trS_bind :: SyntaxExpr GhcPs
</span><a href="GHC.Hs.Expr.html#trS_bind"><span class="hs-identifier hs-var">trS_bind</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcPs
forall (p :: Pass). IsPass p =&gt; SyntaxExpr (GhcPass p)
</span><a href="GHC.Hs.Expr.html#noSyntaxExpr"><span class="hs-identifier hs-var">noSyntaxExpr</span></a></span><span>
</span><span id="line-340"></span><span>                           </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">trS_fmap :: HsExpr GhcPs
</span><a href="GHC.Hs.Expr.html#trS_fmap"><span class="hs-identifier hs-var">trS_fmap</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcPs
forall (p :: Pass). HsExpr (GhcPass p)
</span><a href="GHC.Hs.Expr.html#noExpr"><span class="hs-identifier hs-var">noExpr</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-341"></span><span id="mkTransformStmt"><span class="annot"><span class="annottext">mkTransformStmt :: [ExprLStmt GhcPs]
-&gt; Located (HsExpr GhcPs)
-&gt; StmtLR GhcPs GhcPs (Located (HsExpr GhcPs))
</span><a href="GHC.Hs.Utils.html#mkTransformStmt"><span class="hs-identifier hs-var hs-var">mkTransformStmt</span></a></span></span><span>    </span><span id="local-6989586621680869779"><span class="annot"><span class="annottext">[ExprLStmt GhcPs]
</span><a href="#local-6989586621680869779"><span class="hs-identifier hs-var">ss</span></a></span></span><span> </span><span id="local-6989586621680869778"><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869778"><span class="hs-identifier hs-var">u</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">StmtLR GhcPs GhcPs (Located (HsExpr GhcPs))
</span><a href="GHC.Hs.Utils.html#emptyTransStmt"><span class="hs-identifier hs-var">emptyTransStmt</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">trS_form :: TransForm
</span><a href="GHC.Hs.Expr.html#trS_form"><span class="hs-identifier hs-var">trS_form</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TransForm
</span><a href="GHC.Hs.Expr.html#ThenForm"><span class="hs-identifier hs-var">ThenForm</span></a></span><span class="hs-special">,</span><span>  </span><span class="annot"><span class="annottext">trS_stmts :: [ExprLStmt GhcPs]
</span><a href="GHC.Hs.Expr.html#trS_stmts"><span class="hs-identifier hs-var">trS_stmts</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[ExprLStmt GhcPs]
</span><a href="#local-6989586621680869779"><span class="hs-identifier hs-var">ss</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">trS_using :: Located (HsExpr GhcPs)
</span><a href="GHC.Hs.Expr.html#trS_using"><span class="hs-identifier hs-var">trS_using</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869778"><span class="hs-identifier hs-var">u</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-342"></span><span id="mkTransformByStmt"><span class="annot"><span class="annottext">mkTransformByStmt :: [ExprLStmt GhcPs]
-&gt; Located (HsExpr GhcPs)
-&gt; Located (HsExpr GhcPs)
-&gt; StmtLR GhcPs GhcPs (Located (HsExpr GhcPs))
</span><a href="GHC.Hs.Utils.html#mkTransformByStmt"><span class="hs-identifier hs-var hs-var">mkTransformByStmt</span></a></span></span><span>  </span><span id="local-6989586621680869776"><span class="annot"><span class="annottext">[ExprLStmt GhcPs]
</span><a href="#local-6989586621680869776"><span class="hs-identifier hs-var">ss</span></a></span></span><span> </span><span id="local-6989586621680869775"><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869775"><span class="hs-identifier hs-var">u</span></a></span></span><span> </span><span id="local-6989586621680869774"><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869774"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">StmtLR GhcPs GhcPs (Located (HsExpr GhcPs))
</span><a href="GHC.Hs.Utils.html#emptyTransStmt"><span class="hs-identifier hs-var">emptyTransStmt</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">trS_form :: TransForm
</span><a href="GHC.Hs.Expr.html#trS_form"><span class="hs-identifier hs-var">trS_form</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TransForm
</span><a href="GHC.Hs.Expr.html#ThenForm"><span class="hs-identifier hs-var">ThenForm</span></a></span><span class="hs-special">,</span><span>  </span><span class="annot"><span class="annottext">trS_stmts :: [ExprLStmt GhcPs]
</span><a href="GHC.Hs.Expr.html#trS_stmts"><span class="hs-identifier hs-var">trS_stmts</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[ExprLStmt GhcPs]
</span><a href="#local-6989586621680869776"><span class="hs-identifier hs-var">ss</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">trS_using :: Located (HsExpr GhcPs)
</span><a href="GHC.Hs.Expr.html#trS_using"><span class="hs-identifier hs-var">trS_using</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869775"><span class="hs-identifier hs-var">u</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">trS_by :: Maybe (Located (HsExpr GhcPs))
</span><a href="GHC.Hs.Expr.html#trS_by"><span class="hs-identifier hs-var">trS_by</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Located (HsExpr GhcPs) -&gt; Maybe (Located (HsExpr GhcPs))
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869774"><span class="hs-identifier hs-var">b</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-343"></span><span id="mkGroupUsingStmt"><span class="annot"><span class="annottext">mkGroupUsingStmt :: [ExprLStmt GhcPs]
-&gt; Located (HsExpr GhcPs)
-&gt; StmtLR GhcPs GhcPs (Located (HsExpr GhcPs))
</span><a href="GHC.Hs.Utils.html#mkGroupUsingStmt"><span class="hs-identifier hs-var hs-var">mkGroupUsingStmt</span></a></span></span><span>   </span><span id="local-6989586621680869773"><span class="annot"><span class="annottext">[ExprLStmt GhcPs]
</span><a href="#local-6989586621680869773"><span class="hs-identifier hs-var">ss</span></a></span></span><span> </span><span id="local-6989586621680869772"><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869772"><span class="hs-identifier hs-var">u</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">StmtLR GhcPs GhcPs (Located (HsExpr GhcPs))
</span><a href="GHC.Hs.Utils.html#emptyTransStmt"><span class="hs-identifier hs-var">emptyTransStmt</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">trS_form :: TransForm
</span><a href="GHC.Hs.Expr.html#trS_form"><span class="hs-identifier hs-var">trS_form</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TransForm
</span><a href="GHC.Hs.Expr.html#GroupForm"><span class="hs-identifier hs-var">GroupForm</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">trS_stmts :: [ExprLStmt GhcPs]
</span><a href="GHC.Hs.Expr.html#trS_stmts"><span class="hs-identifier hs-var">trS_stmts</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[ExprLStmt GhcPs]
</span><a href="#local-6989586621680869773"><span class="hs-identifier hs-var">ss</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">trS_using :: Located (HsExpr GhcPs)
</span><a href="GHC.Hs.Expr.html#trS_using"><span class="hs-identifier hs-var">trS_using</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869772"><span class="hs-identifier hs-var">u</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-344"></span><span id="mkGroupByUsingStmt"><span class="annot"><span class="annottext">mkGroupByUsingStmt :: [ExprLStmt GhcPs]
-&gt; Located (HsExpr GhcPs)
-&gt; Located (HsExpr GhcPs)
-&gt; StmtLR GhcPs GhcPs (Located (HsExpr GhcPs))
</span><a href="GHC.Hs.Utils.html#mkGroupByUsingStmt"><span class="hs-identifier hs-var hs-var">mkGroupByUsingStmt</span></a></span></span><span> </span><span id="local-6989586621680869770"><span class="annot"><span class="annottext">[ExprLStmt GhcPs]
</span><a href="#local-6989586621680869770"><span class="hs-identifier hs-var">ss</span></a></span></span><span> </span><span id="local-6989586621680869769"><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869769"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span id="local-6989586621680869768"><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869768"><span class="hs-identifier hs-var">u</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">StmtLR GhcPs GhcPs (Located (HsExpr GhcPs))
</span><a href="GHC.Hs.Utils.html#emptyTransStmt"><span class="hs-identifier hs-var">emptyTransStmt</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">trS_form :: TransForm
</span><a href="GHC.Hs.Expr.html#trS_form"><span class="hs-identifier hs-var">trS_form</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TransForm
</span><a href="GHC.Hs.Expr.html#GroupForm"><span class="hs-identifier hs-var">GroupForm</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">trS_stmts :: [ExprLStmt GhcPs]
</span><a href="GHC.Hs.Expr.html#trS_stmts"><span class="hs-identifier hs-var">trS_stmts</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[ExprLStmt GhcPs]
</span><a href="#local-6989586621680869770"><span class="hs-identifier hs-var">ss</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">trS_using :: Located (HsExpr GhcPs)
</span><a href="GHC.Hs.Expr.html#trS_using"><span class="hs-identifier hs-var">trS_using</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869768"><span class="hs-identifier hs-var">u</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">trS_by :: Maybe (Located (HsExpr GhcPs))
</span><a href="GHC.Hs.Expr.html#trS_by"><span class="hs-identifier hs-var">trS_by</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Located (HsExpr GhcPs) -&gt; Maybe (Located (HsExpr GhcPs))
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869769"><span class="hs-identifier hs-var">b</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-345"></span><span>
</span><span id="line-346"></span><span id="mkLastStmt"><span class="annot"><span class="annottext">mkLastStmt :: forall (idR :: Pass) (bodyR :: * -&gt; *) (idL :: Pass).
IsPass idR =&gt;
Located (bodyR (GhcPass idR))
-&gt; StmtLR
     (GhcPass idL) (GhcPass idR) (Located (bodyR (GhcPass idR)))
</span><a href="GHC.Hs.Utils.html#mkLastStmt"><span class="hs-identifier hs-var hs-var">mkLastStmt</span></a></span></span><span> </span><span id="local-6989586621680869765"><span class="annot"><span class="annottext">Located (bodyR (GhcPass idR))
</span><a href="#local-6989586621680869765"><span class="hs-identifier hs-var">body</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XLastStmt
  (GhcPass idL) (GhcPass idR) (Located (bodyR (GhcPass idR)))
-&gt; Located (bodyR (GhcPass idR))
-&gt; Maybe Bool
-&gt; SyntaxExpr (GhcPass idR)
-&gt; StmtLR
     (GhcPass idL) (GhcPass idR) (Located (bodyR (GhcPass idR)))
forall idL idR body.
XLastStmt idL idR body
-&gt; body -&gt; Maybe Bool -&gt; SyntaxExpr idR -&gt; StmtLR idL idR body
</span><a href="GHC.Hs.Expr.html#LastStmt"><span class="hs-identifier hs-var">LastStmt</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XLastStmt
  (GhcPass idL) (GhcPass idR) (Located (bodyR (GhcPass idR)))
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">Located (bodyR (GhcPass idR))
</span><a href="#local-6989586621680869765"><span class="hs-identifier hs-var">body</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe Bool
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="annot"><span class="annottext">SyntaxExpr (GhcPass idR)
forall (p :: Pass). IsPass p =&gt; SyntaxExpr (GhcPass p)
</span><a href="GHC.Hs.Expr.html#noSyntaxExpr"><span class="hs-identifier hs-var">noSyntaxExpr</span></a></span><span>
</span><span id="line-347"></span><span id="mkBodyStmt"><span class="annot"><span class="annottext">mkBodyStmt :: forall (bodyR :: * -&gt; *) (idL :: Pass).
Located (bodyR GhcPs)
-&gt; StmtLR (GhcPass idL) GhcPs (Located (bodyR GhcPs))
</span><a href="GHC.Hs.Utils.html#mkBodyStmt"><span class="hs-identifier hs-var hs-var">mkBodyStmt</span></a></span></span><span> </span><span id="local-6989586621680869761"><span class="annot"><span class="annottext">Located (bodyR GhcPs)
</span><a href="#local-6989586621680869761"><span class="hs-identifier hs-var">body</span></a></span></span><span>
</span><span id="line-348"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XBodyStmt (GhcPass idL) GhcPs (Located (bodyR GhcPs))
-&gt; Located (bodyR GhcPs)
-&gt; SyntaxExpr GhcPs
-&gt; SyntaxExpr GhcPs
-&gt; StmtLR (GhcPass idL) GhcPs (Located (bodyR GhcPs))
forall idL idR body.
XBodyStmt idL idR body
-&gt; body -&gt; SyntaxExpr idR -&gt; SyntaxExpr idR -&gt; StmtLR idL idR body
</span><a href="GHC.Hs.Expr.html#BodyStmt"><span class="hs-identifier hs-var">BodyStmt</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XBodyStmt (GhcPass idL) GhcPs (Located (bodyR GhcPs))
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">Located (bodyR GhcPs)
</span><a href="#local-6989586621680869761"><span class="hs-identifier hs-var">body</span></a></span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcPs
forall (p :: Pass). IsPass p =&gt; SyntaxExpr (GhcPass p)
</span><a href="GHC.Hs.Expr.html#noSyntaxExpr"><span class="hs-identifier hs-var">noSyntaxExpr</span></a></span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcPs
forall (p :: Pass). IsPass p =&gt; SyntaxExpr (GhcPass p)
</span><a href="GHC.Hs.Expr.html#noSyntaxExpr"><span class="hs-identifier hs-var">noSyntaxExpr</span></a></span><span>
</span><span id="line-349"></span><span id="mkPsBindStmt"><span class="annot"><span class="annottext">mkPsBindStmt :: forall (bodyR :: * -&gt; *).
LPat GhcPs
-&gt; Located (bodyR GhcPs)
-&gt; StmtLR GhcPs GhcPs (Located (bodyR GhcPs))
</span><a href="GHC.Hs.Utils.html#mkPsBindStmt"><span class="hs-identifier hs-var hs-var">mkPsBindStmt</span></a></span></span><span> </span><span id="local-6989586621680869759"><span class="annot"><span class="annottext">LPat GhcPs
</span><a href="#local-6989586621680869759"><span class="hs-identifier hs-var">pat</span></a></span></span><span> </span><span id="local-6989586621680869758"><span class="annot"><span class="annottext">Located (bodyR GhcPs)
</span><a href="#local-6989586621680869758"><span class="hs-identifier hs-var">body</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XBindStmt GhcPs GhcPs (Located (bodyR GhcPs))
-&gt; LPat GhcPs
-&gt; Located (bodyR GhcPs)
-&gt; StmtLR GhcPs GhcPs (Located (bodyR GhcPs))
forall idL idR body.
XBindStmt idL idR body -&gt; LPat idL -&gt; body -&gt; StmtLR idL idR body
</span><a href="GHC.Hs.Expr.html#BindStmt"><span class="hs-identifier hs-var">BindStmt</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XBindStmt GhcPs GhcPs (Located (bodyR GhcPs))
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">LPat GhcPs
</span><a href="#local-6989586621680869759"><span class="hs-identifier hs-var">pat</span></a></span><span> </span><span class="annot"><span class="annottext">Located (bodyR GhcPs)
</span><a href="#local-6989586621680869758"><span class="hs-identifier hs-var">body</span></a></span><span>
</span><span id="line-350"></span><span id="mkRnBindStmt"><span class="annot"><span class="annottext">mkRnBindStmt :: forall (bodyR :: * -&gt; *).
LPat GhcRn
-&gt; Located (bodyR GhcRn)
-&gt; StmtLR GhcRn GhcRn (Located (bodyR GhcRn))
</span><a href="GHC.Hs.Utils.html#mkRnBindStmt"><span class="hs-identifier hs-var hs-var">mkRnBindStmt</span></a></span></span><span> </span><span id="local-6989586621680869755"><span class="annot"><span class="annottext">LPat GhcRn
</span><a href="#local-6989586621680869755"><span class="hs-identifier hs-var">pat</span></a></span></span><span> </span><span id="local-6989586621680869754"><span class="annot"><span class="annottext">Located (bodyR GhcRn)
</span><a href="#local-6989586621680869754"><span class="hs-identifier hs-var">body</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XBindStmt GhcRn GhcRn (Located (bodyR GhcRn))
-&gt; LPat GhcRn
-&gt; Located (bodyR GhcRn)
-&gt; StmtLR GhcRn GhcRn (Located (bodyR GhcRn))
forall idL idR body.
XBindStmt idL idR body -&gt; LPat idL -&gt; body -&gt; StmtLR idL idR body
</span><a href="GHC.Hs.Expr.html#BindStmt"><span class="hs-identifier hs-var">BindStmt</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XBindStmtRn :: SyntaxExpr GhcRn -&gt; FailOperator GhcRn -&gt; XBindStmtRn
</span><a href="GHC.Hs.Expr.html#XBindStmtRn"><span class="hs-identifier hs-type">XBindStmtRn</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">xbsrn_bindOp :: SyntaxExpr GhcRn
</span><a href="GHC.Hs.Expr.html#xbsrn_bindOp"><span class="hs-identifier hs-var">xbsrn_bindOp</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcRn
forall (p :: Pass). IsPass p =&gt; SyntaxExpr (GhcPass p)
</span><a href="GHC.Hs.Expr.html#noSyntaxExpr"><span class="hs-identifier hs-var">noSyntaxExpr</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">xbsrn_failOp :: FailOperator GhcRn
</span><a href="GHC.Hs.Expr.html#xbsrn_failOp"><span class="hs-identifier hs-var">xbsrn_failOp</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FailOperator GhcRn
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">LPat GhcRn
</span><a href="#local-6989586621680869755"><span class="hs-identifier hs-var">pat</span></a></span><span> </span><span class="annot"><span class="annottext">Located (bodyR GhcRn)
</span><a href="#local-6989586621680869754"><span class="hs-identifier hs-var">body</span></a></span><span>
</span><span id="line-351"></span><span id="mkTcBindStmt"><span class="annot"><span class="annottext">mkTcBindStmt :: forall (bodyR :: * -&gt; *).
LPat GhcTc
-&gt; Located (bodyR GhcTc)
-&gt; StmtLR GhcTc GhcTc (Located (bodyR GhcTc))
</span><a href="GHC.Hs.Utils.html#mkTcBindStmt"><span class="hs-identifier hs-var hs-var">mkTcBindStmt</span></a></span></span><span> </span><span id="local-6989586621680869749"><span class="annot"><span class="annottext">LPat GhcTc
</span><a href="#local-6989586621680869749"><span class="hs-identifier hs-var">pat</span></a></span></span><span> </span><span id="local-6989586621680869748"><span class="annot"><span class="annottext">Located (bodyR GhcTc)
</span><a href="#local-6989586621680869748"><span class="hs-identifier hs-var">body</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XBindStmt GhcTc GhcTc (Located (bodyR GhcTc))
-&gt; LPat GhcTc
-&gt; Located (bodyR GhcTc)
-&gt; StmtLR GhcTc GhcTc (Located (bodyR GhcTc))
forall idL idR body.
XBindStmt idL idR body -&gt; LPat idL -&gt; body -&gt; StmtLR idL idR body
</span><a href="GHC.Hs.Expr.html#BindStmt"><span class="hs-identifier hs-var">BindStmt</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XBindStmtTc :: SyntaxExpr GhcTc
-&gt; Type -&gt; Type -&gt; FailOperator GhcTc -&gt; XBindStmtTc
</span><a href="GHC.Hs.Expr.html#XBindStmtTc"><span class="hs-identifier hs-type">XBindStmtTc</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">xbstc_bindOp :: SyntaxExpr GhcTc
</span><a href="GHC.Hs.Expr.html#xbstc_bindOp"><span class="hs-identifier hs-var">xbstc_bindOp</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SyntaxExpr GhcTc
forall (p :: Pass). IsPass p =&gt; SyntaxExpr (GhcPass p)
</span><a href="GHC.Hs.Expr.html#noSyntaxExpr"><span class="hs-identifier hs-var">noSyntaxExpr</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-352"></span><span>                                                </span><span class="annot"><span class="annottext">xbstc_boundResultType :: Type
</span><a href="GHC.Hs.Expr.html#xbstc_boundResultType"><span class="hs-identifier hs-var">xbstc_boundResultType</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="GHC.Builtin.Types.html#unitTy"><span class="hs-identifier hs-var">unitTy</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-353"></span><span>                                                </span><span class="annot"><span class="annottext">xbstc_boundResultMult :: Type
</span><a href="GHC.Hs.Expr.html#xbstc_boundResultMult"><span class="hs-identifier hs-var">xbstc_boundResultMult</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="GHC.Core.Type.html#Many"><span class="hs-identifier hs-var">Many</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-354"></span><span>                                                </span><span class="annot"><span class="annottext">xbstc_failOp :: FailOperator GhcTc
</span><a href="GHC.Hs.Expr.html#xbstc_failOp"><span class="hs-identifier hs-var">xbstc_failOp</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FailOperator GhcTc
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">LPat GhcTc
</span><a href="#local-6989586621680869749"><span class="hs-identifier hs-var">pat</span></a></span><span> </span><span class="annot"><span class="annottext">Located (bodyR GhcTc)
</span><a href="#local-6989586621680869748"><span class="hs-identifier hs-var">body</span></a></span><span>
</span><span id="line-355"></span><span>  </span><span class="hs-comment">-- don't use placeHolderTypeTc above, because that panics during zonking</span><span>
</span><span id="line-356"></span><span>
</span><span id="line-357"></span><span class="annot"><a href="GHC.Hs.Utils.html#emptyRecStmt%27"><span class="hs-identifier hs-type">emptyRecStmt'</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-keyword">forall</span><span> </span><span id="local-6989586621680870620"><span class="annot"><a href="#local-6989586621680870620"><span class="hs-identifier hs-type">idL</span></a></span></span><span> </span><span id="local-6989586621680870621"><span class="annot"><a href="#local-6989586621680870621"><span class="hs-identifier hs-type">idR</span></a></span></span><span> </span><span id="local-6989586621680870619"><span class="annot"><a href="#local-6989586621680870619"><span class="hs-identifier hs-type">body</span></a></span></span><span class="hs-operator">.</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#IsPass"><span class="hs-identifier hs-type">IsPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870621"><span class="hs-identifier hs-type">idR</span></a></span><span>
</span><span id="line-358"></span><span>              </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#XRecStmt"><span class="hs-identifier hs-type">XRecStmt</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870620"><span class="hs-identifier hs-type">idL</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870621"><span class="hs-identifier hs-type">idR</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="#local-6989586621680870619"><span class="hs-identifier hs-type">body</span></a></span><span>
</span><span id="line-359"></span><span>              </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#StmtLR"><span class="hs-identifier hs-type">StmtLR</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870620"><span class="hs-identifier hs-type">idL</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870621"><span class="hs-identifier hs-type">idR</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="#local-6989586621680870619"><span class="hs-identifier hs-type">body</span></a></span><span>
</span><span id="line-360"></span><span id="emptyRecStmt%27"><span class="annot"><span class="annottext">emptyRecStmt' :: forall (idL :: Pass) (idR :: Pass) body.
IsPass idR =&gt;
XRecStmt (GhcPass idL) (GhcPass idR) body
-&gt; StmtLR (GhcPass idL) (GhcPass idR) body
</span><a href="GHC.Hs.Utils.html#emptyRecStmt%27"><span class="hs-identifier hs-var hs-var">emptyRecStmt'</span></a></span></span><span> </span><span id="local-6989586621680869737"><span class="annot"><span class="annottext">XRecStmt (GhcPass idL) (GhcPass idR) body
</span><a href="#local-6989586621680869737"><span class="hs-identifier hs-var">tyVal</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-361"></span><span>   </span><span class="annot"><span class="annottext">RecStmt :: forall idL idR body.
XRecStmt idL idR body
-&gt; [LStmtLR idL idR body]
-&gt; [IdP idR]
-&gt; [IdP idR]
-&gt; SyntaxExpr idR
-&gt; SyntaxExpr idR
-&gt; SyntaxExpr idR
-&gt; StmtLR idL idR body
</span><a href="GHC.Hs.Expr.html#RecStmt"><span class="hs-identifier hs-type">RecStmt</span></a></span><span>
</span><span id="line-362"></span><span>     </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">recS_stmts :: [LStmtLR (GhcPass idL) (GhcPass idR) body]
</span><a href="GHC.Hs.Expr.html#recS_stmts"><span class="hs-identifier hs-var">recS_stmts</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">recS_later_ids :: [IdP (GhcPass idR)]
</span><a href="GHC.Hs.Expr.html#recS_later_ids"><span class="hs-identifier hs-var">recS_later_ids</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-363"></span><span>     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">recS_rec_ids :: [IdP (GhcPass idR)]
</span><a href="GHC.Hs.Expr.html#recS_rec_ids"><span class="hs-identifier hs-var">recS_rec_ids</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-364"></span><span>     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">recS_ret_fn :: SyntaxExpr (GhcPass idR)
</span><a href="GHC.Hs.Expr.html#recS_ret_fn"><span class="hs-identifier hs-var">recS_ret_fn</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SyntaxExpr (GhcPass idR)
forall (p :: Pass). IsPass p =&gt; SyntaxExpr (GhcPass p)
</span><a href="GHC.Hs.Expr.html#noSyntaxExpr"><span class="hs-identifier hs-var">noSyntaxExpr</span></a></span><span>
</span><span id="line-365"></span><span>     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">recS_mfix_fn :: SyntaxExpr (GhcPass idR)
</span><a href="GHC.Hs.Expr.html#recS_mfix_fn"><span class="hs-identifier hs-var">recS_mfix_fn</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SyntaxExpr (GhcPass idR)
forall (p :: Pass). IsPass p =&gt; SyntaxExpr (GhcPass p)
</span><a href="GHC.Hs.Expr.html#noSyntaxExpr"><span class="hs-identifier hs-var">noSyntaxExpr</span></a></span><span>
</span><span id="line-366"></span><span>     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">recS_bind_fn :: SyntaxExpr (GhcPass idR)
</span><a href="GHC.Hs.Expr.html#recS_bind_fn"><span class="hs-identifier hs-var">recS_bind_fn</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SyntaxExpr (GhcPass idR)
forall (p :: Pass). IsPass p =&gt; SyntaxExpr (GhcPass p)
</span><a href="GHC.Hs.Expr.html#noSyntaxExpr"><span class="hs-identifier hs-var">noSyntaxExpr</span></a></span><span>
</span><span id="line-367"></span><span>     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">recS_ext :: XRecStmt (GhcPass idL) (GhcPass idR) body
</span><a href="GHC.Hs.Expr.html#recS_ext"><span class="hs-identifier hs-var">recS_ext</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XRecStmt (GhcPass idL) (GhcPass idR) body
</span><a href="#local-6989586621680869737"><span class="hs-identifier hs-var">tyVal</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-368"></span><span>
</span><span id="line-369"></span><span class="annot"><a href="GHC.Hs.Utils.html#unitRecStmtTc"><span class="hs-identifier hs-type">unitRecStmtTc</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#RecStmtTc"><span class="hs-identifier hs-type">RecStmtTc</span></a></span><span>
</span><span id="line-370"></span><span id="unitRecStmtTc"><span class="annot"><span class="annottext">unitRecStmtTc :: RecStmtTc
</span><a href="GHC.Hs.Utils.html#unitRecStmtTc"><span class="hs-identifier hs-var hs-var">unitRecStmtTc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RecStmtTc :: Type -&gt; [HsExpr GhcTc] -&gt; [HsExpr GhcTc] -&gt; Type -&gt; RecStmtTc
</span><a href="GHC.Hs.Expr.html#RecStmtTc"><span class="hs-identifier hs-type">RecStmtTc</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">recS_bind_ty :: Type
</span><a href="GHC.Hs.Expr.html#recS_bind_ty"><span class="hs-identifier hs-var">recS_bind_ty</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="GHC.Builtin.Types.html#unitTy"><span class="hs-identifier hs-var">unitTy</span></a></span><span>
</span><span id="line-371"></span><span>                          </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">recS_later_rets :: [HsExpr GhcTc]
</span><a href="GHC.Hs.Expr.html#recS_later_rets"><span class="hs-identifier hs-var">recS_later_rets</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-372"></span><span>                          </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">recS_rec_rets :: [HsExpr GhcTc]
</span><a href="GHC.Hs.Expr.html#recS_rec_rets"><span class="hs-identifier hs-var">recS_rec_rets</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-373"></span><span>                          </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">recS_ret_ty :: Type
</span><a href="GHC.Hs.Expr.html#recS_ret_ty"><span class="hs-identifier hs-var">recS_ret_ty</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="GHC.Builtin.Types.html#unitTy"><span class="hs-identifier hs-var">unitTy</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-374"></span><span>
</span><span id="line-375"></span><span id="emptyRecStmt"><span class="annot"><span class="annottext">emptyRecStmt :: forall (idL :: Pass) bodyR. StmtLR (GhcPass idL) GhcPs bodyR
</span><a href="GHC.Hs.Utils.html#emptyRecStmt"><span class="hs-identifier hs-var hs-var">emptyRecStmt</span></a></span></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XRecStmt (GhcPass idL) GhcPs bodyR
-&gt; StmtLR (GhcPass idL) GhcPs bodyR
forall (idL :: Pass) (idR :: Pass) body.
IsPass idR =&gt;
XRecStmt (GhcPass idL) (GhcPass idR) body
-&gt; StmtLR (GhcPass idL) (GhcPass idR) body
</span><a href="GHC.Hs.Utils.html#emptyRecStmt%27"><span class="hs-identifier hs-var">emptyRecStmt'</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XRecStmt (GhcPass idL) GhcPs bodyR
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span>
</span><span id="line-376"></span><span id="emptyRecStmtName"><span class="annot"><span class="annottext">emptyRecStmtName :: forall bodyR. StmtLR GhcRn GhcRn bodyR
</span><a href="GHC.Hs.Utils.html#emptyRecStmtName"><span class="hs-identifier hs-var hs-var">emptyRecStmtName</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XRecStmt GhcRn GhcRn bodyR -&gt; StmtLR GhcRn GhcRn bodyR
forall (idL :: Pass) (idR :: Pass) body.
IsPass idR =&gt;
XRecStmt (GhcPass idL) (GhcPass idR) body
-&gt; StmtLR (GhcPass idL) (GhcPass idR) body
</span><a href="GHC.Hs.Utils.html#emptyRecStmt%27"><span class="hs-identifier hs-var">emptyRecStmt'</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XRecStmt GhcRn GhcRn bodyR
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span>
</span><span id="line-377"></span><span id="emptyRecStmtId"><span class="annot"><span class="annottext">emptyRecStmtId :: forall bodyR. StmtLR GhcTc GhcTc bodyR
</span><a href="GHC.Hs.Utils.html#emptyRecStmtId"><span class="hs-identifier hs-var hs-var">emptyRecStmtId</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XRecStmt GhcTc GhcTc bodyR -&gt; StmtLR GhcTc GhcTc bodyR
forall (idL :: Pass) (idR :: Pass) body.
IsPass idR =&gt;
XRecStmt (GhcPass idL) (GhcPass idR) body
-&gt; StmtLR (GhcPass idL) (GhcPass idR) body
</span><a href="GHC.Hs.Utils.html#emptyRecStmt%27"><span class="hs-identifier hs-var">emptyRecStmt'</span></a></span><span> </span><span class="annot"><span class="annottext">XRecStmt GhcTc GhcTc bodyR
RecStmtTc
</span><a href="GHC.Hs.Utils.html#unitRecStmtTc"><span class="hs-identifier hs-var">unitRecStmtTc</span></a></span><span>
</span><span id="line-378"></span><span>                                        </span><span class="hs-comment">-- a panic might trigger during zonking</span><span>
</span><span id="line-379"></span><span id="mkRecStmt"><span class="annot"><span class="annottext">mkRecStmt :: forall (idL :: Pass) bodyR.
[LStmtLR (GhcPass idL) GhcPs bodyR]
-&gt; StmtLR (GhcPass idL) GhcPs bodyR
</span><a href="GHC.Hs.Utils.html#mkRecStmt"><span class="hs-identifier hs-var hs-var">mkRecStmt</span></a></span></span><span> </span><span id="local-6989586621680869720"><span class="annot"><span class="annottext">[LStmtLR (GhcPass idL) GhcPs bodyR]
</span><a href="#local-6989586621680869720"><span class="hs-identifier hs-var">stmts</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">StmtLR (GhcPass idL) GhcPs bodyR
forall (idL :: Pass) bodyR. StmtLR (GhcPass idL) GhcPs bodyR
</span><a href="GHC.Hs.Utils.html#emptyRecStmt"><span class="hs-identifier hs-var">emptyRecStmt</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">recS_stmts :: [LStmtLR (GhcPass idL) GhcPs bodyR]
</span><a href="GHC.Hs.Expr.html#recS_stmts"><span class="hs-identifier hs-var">recS_stmts</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[LStmtLR (GhcPass idL) GhcPs bodyR]
</span><a href="#local-6989586621680869720"><span class="hs-identifier hs-var">stmts</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-380"></span><span>
</span><span id="line-381"></span><span class="hs-comment">-------------------------------</span><span>
</span><span id="line-382"></span><span class="hs-comment">-- | A useful function for building @OpApps@.  The operator is always a</span><span>
</span><span id="line-383"></span><span class="hs-comment">-- variable, and we don't know the fixity yet.</span><span>
</span><span id="line-384"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsOpApp"><span class="hs-identifier hs-type">mkHsOpApp</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsExpr"><span class="hs-identifier hs-type">HsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-385"></span><span id="mkHsOpApp"><span class="annot"><span class="annottext">mkHsOpApp :: Located (HsExpr GhcPs)
-&gt; IdP GhcPs -&gt; Located (HsExpr GhcPs) -&gt; HsExpr GhcPs
</span><a href="GHC.Hs.Utils.html#mkHsOpApp"><span class="hs-identifier hs-var hs-var">mkHsOpApp</span></a></span></span><span> </span><span id="local-6989586621680869719"><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869719"><span class="hs-identifier hs-var">e1</span></a></span></span><span> </span><span id="local-6989586621680869718"><span class="annot"><span class="annottext">IdP GhcPs
</span><a href="#local-6989586621680869718"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span id="local-6989586621680869717"><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869717"><span class="hs-identifier hs-var">e2</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XOpApp GhcPs
-&gt; Located (HsExpr GhcPs)
-&gt; Located (HsExpr GhcPs)
-&gt; Located (HsExpr GhcPs)
-&gt; HsExpr GhcPs
forall p.
XOpApp p -&gt; LHsExpr p -&gt; LHsExpr p -&gt; LHsExpr p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#OpApp"><span class="hs-identifier hs-var">OpApp</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XOpApp GhcPs
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869719"><span class="hs-identifier hs-var">e1</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsExpr GhcPs -&gt; Located (HsExpr GhcPs)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XVar GhcPs -&gt; Located (IdP GhcPs) -&gt; HsExpr GhcPs
forall p. XVar p -&gt; Located (IdP p) -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsVar"><span class="hs-identifier hs-var">HsVar</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XVar GhcPs
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RdrName -&gt; Located RdrName
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="annot"><span class="annottext">RdrName
IdP GhcPs
</span><a href="#local-6989586621680869718"><span class="hs-identifier hs-var">op</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869717"><span class="hs-identifier hs-var">e2</span></a></span><span>
</span><span id="line-386"></span><span>
</span><span id="line-387"></span><span class="annot"><a href="GHC.Hs.Utils.html#unqualSplice"><span class="hs-identifier hs-type">unqualSplice</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Name.Reader.html#RdrName"><span class="hs-identifier hs-type">RdrName</span></a></span><span>
</span><span id="line-388"></span><span id="unqualSplice"><span class="annot"><span class="annottext">unqualSplice :: RdrName
</span><a href="GHC.Hs.Utils.html#unqualSplice"><span class="hs-identifier hs-var hs-var">unqualSplice</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">OccName -&gt; RdrName
</span><a href="GHC.Types.Name.Reader.html#mkRdrUnqual"><span class="hs-identifier hs-var">mkRdrUnqual</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FastString -&gt; OccName
</span><a href="GHC.Types.Name.Occurrence.html#mkVarOccFS"><span class="hs-identifier hs-var">mkVarOccFS</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; FastString
</span><a href="GHC.Data.FastString.html#fsLit"><span class="hs-identifier hs-var">fsLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;splice&quot;</span></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-389"></span><span>
</span><span id="line-390"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkUntypedSplice"><span class="hs-identifier hs-type">mkUntypedSplice</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#SpliceDecoration"><span class="hs-identifier hs-type">SpliceDecoration</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsSplice"><span class="hs-identifier hs-type">HsSplice</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-391"></span><span id="mkUntypedSplice"><span class="annot"><span class="annottext">mkUntypedSplice :: SpliceDecoration -&gt; Located (HsExpr GhcPs) -&gt; HsSplice GhcPs
</span><a href="GHC.Hs.Utils.html#mkUntypedSplice"><span class="hs-identifier hs-var hs-var">mkUntypedSplice</span></a></span></span><span> </span><span id="local-6989586621680869711"><span class="annot"><span class="annottext">SpliceDecoration
</span><a href="#local-6989586621680869711"><span class="hs-identifier hs-var">hasParen</span></a></span></span><span> </span><span id="local-6989586621680869710"><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869710"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XUntypedSplice GhcPs
-&gt; SpliceDecoration
-&gt; IdP GhcPs
-&gt; Located (HsExpr GhcPs)
-&gt; HsSplice GhcPs
forall id.
XUntypedSplice id
-&gt; SpliceDecoration -&gt; IdP id -&gt; LHsExpr id -&gt; HsSplice id
</span><a href="GHC.Hs.Expr.html#HsUntypedSplice"><span class="hs-identifier hs-var">HsUntypedSplice</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XUntypedSplice GhcPs
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">SpliceDecoration
</span><a href="#local-6989586621680869711"><span class="hs-identifier hs-var">hasParen</span></a></span><span> </span><span class="annot"><span class="annottext">RdrName
IdP GhcPs
</span><a href="GHC.Hs.Utils.html#unqualSplice"><span class="hs-identifier hs-var">unqualSplice</span></a></span><span> </span><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869710"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-392"></span><span>
</span><span id="line-393"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkTypedSplice"><span class="hs-identifier hs-type">mkTypedSplice</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#SpliceDecoration"><span class="hs-identifier hs-type">SpliceDecoration</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsSplice"><span class="hs-identifier hs-type">HsSplice</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-394"></span><span id="mkTypedSplice"><span class="annot"><span class="annottext">mkTypedSplice :: SpliceDecoration -&gt; Located (HsExpr GhcPs) -&gt; HsSplice GhcPs
</span><a href="GHC.Hs.Utils.html#mkTypedSplice"><span class="hs-identifier hs-var hs-var">mkTypedSplice</span></a></span></span><span> </span><span id="local-6989586621680869708"><span class="annot"><span class="annottext">SpliceDecoration
</span><a href="#local-6989586621680869708"><span class="hs-identifier hs-var">hasParen</span></a></span></span><span> </span><span id="local-6989586621680869707"><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869707"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XTypedSplice GhcPs
-&gt; SpliceDecoration
-&gt; IdP GhcPs
-&gt; Located (HsExpr GhcPs)
-&gt; HsSplice GhcPs
forall id.
XTypedSplice id
-&gt; SpliceDecoration -&gt; IdP id -&gt; LHsExpr id -&gt; HsSplice id
</span><a href="GHC.Hs.Expr.html#HsTypedSplice"><span class="hs-identifier hs-var">HsTypedSplice</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XTypedSplice GhcPs
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">SpliceDecoration
</span><a href="#local-6989586621680869708"><span class="hs-identifier hs-var">hasParen</span></a></span><span> </span><span class="annot"><span class="annottext">RdrName
IdP GhcPs
</span><a href="GHC.Hs.Utils.html#unqualSplice"><span class="hs-identifier hs-var">unqualSplice</span></a></span><span> </span><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869707"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-395"></span><span>
</span><span id="line-396"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsQuasiQuote"><span class="hs-identifier hs-type">mkHsQuasiQuote</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Name.Reader.html#RdrName"><span class="hs-identifier hs-type">RdrName</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsSplice"><span class="hs-identifier hs-type">HsSplice</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-397"></span><span id="mkHsQuasiQuote"><span class="annot"><span class="annottext">mkHsQuasiQuote :: RdrName -&gt; SrcSpan -&gt; FastString -&gt; HsSplice GhcPs
</span><a href="GHC.Hs.Utils.html#mkHsQuasiQuote"><span class="hs-identifier hs-var hs-var">mkHsQuasiQuote</span></a></span></span><span> </span><span id="local-6989586621680869705"><span class="annot"><span class="annottext">RdrName
</span><a href="#local-6989586621680869705"><span class="hs-identifier hs-var">quoter</span></a></span></span><span> </span><span id="local-6989586621680869704"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869704"><span class="hs-identifier hs-var">span</span></a></span></span><span> </span><span id="local-6989586621680869703"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680869703"><span class="hs-identifier hs-var">quote</span></a></span></span><span>
</span><span id="line-398"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XQuasiQuote GhcPs
-&gt; IdP GhcPs
-&gt; IdP GhcPs
-&gt; SrcSpan
-&gt; FastString
-&gt; HsSplice GhcPs
forall id.
XQuasiQuote id
-&gt; IdP id -&gt; IdP id -&gt; SrcSpan -&gt; FastString -&gt; HsSplice id
</span><a href="GHC.Hs.Expr.html#HsQuasiQuote"><span class="hs-identifier hs-var">HsQuasiQuote</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XQuasiQuote GhcPs
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">RdrName
IdP GhcPs
</span><a href="GHC.Hs.Utils.html#unqualSplice"><span class="hs-identifier hs-var">unqualSplice</span></a></span><span> </span><span class="annot"><span class="annottext">RdrName
IdP GhcPs
</span><a href="#local-6989586621680869705"><span class="hs-identifier hs-var">quoter</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869704"><span class="hs-identifier hs-var">span</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680869703"><span class="hs-identifier hs-var">quote</span></a></span><span>
</span><span id="line-399"></span><span>
</span><span id="line-400"></span><span id="local-6989586621680870592"><span class="annot"><a href="GHC.Hs.Utils.html#mkHsString"><span class="hs-identifier hs-type">mkHsString</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Lit.html#HsLit"><span class="hs-identifier hs-type">HsLit</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870592"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-401"></span><span id="mkHsString"><span class="annot"><span class="annottext">mkHsString :: forall (p :: Pass). String -&gt; HsLit (GhcPass p)
</span><a href="GHC.Hs.Utils.html#mkHsString"><span class="hs-identifier hs-var hs-var">mkHsString</span></a></span></span><span> </span><span id="local-6989586621680869701"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680869701"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XHsString (GhcPass p) -&gt; FastString -&gt; HsLit (GhcPass p)
forall x. XHsString x -&gt; FastString -&gt; HsLit x
</span><a href="GHC.Hs.Lit.html#HsString"><span class="hs-identifier hs-var">HsString</span></a></span><span> </span><span class="annot"><span class="annottext">SourceText
XHsString (GhcPass p)
</span><a href="GHC.Types.Basic.html#NoSourceText"><span class="hs-identifier hs-var">NoSourceText</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; FastString
</span><a href="GHC.Data.FastString.html#mkFastString"><span class="hs-identifier hs-var">mkFastString</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680869701"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-402"></span><span>
</span><span id="line-403"></span><span id="local-6989586621680870587"><span class="annot"><a href="GHC.Hs.Utils.html#mkHsStringPrimLit"><span class="hs-identifier hs-type">mkHsStringPrimLit</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Lit.html#HsLit"><span class="hs-identifier hs-type">HsLit</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870587"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-404"></span><span id="mkHsStringPrimLit"><span class="annot"><span class="annottext">mkHsStringPrimLit :: forall (p :: Pass). FastString -&gt; HsLit (GhcPass p)
</span><a href="GHC.Hs.Utils.html#mkHsStringPrimLit"><span class="hs-identifier hs-var hs-var">mkHsStringPrimLit</span></a></span></span><span> </span><span id="local-6989586621680869697"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680869697"><span class="hs-identifier hs-var">fs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XHsStringPrim (GhcPass p) -&gt; ByteString -&gt; HsLit (GhcPass p)
forall x. XHsStringPrim x -&gt; ByteString -&gt; HsLit x
</span><a href="GHC.Hs.Lit.html#HsStringPrim"><span class="hs-identifier hs-var">HsStringPrim</span></a></span><span> </span><span class="annot"><span class="annottext">SourceText
XHsStringPrim (GhcPass p)
</span><a href="GHC.Types.Basic.html#NoSourceText"><span class="hs-identifier hs-var">NoSourceText</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FastString -&gt; ByteString
</span><a href="GHC.Data.FastString.html#bytesFS"><span class="hs-identifier hs-var">bytesFS</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680869697"><span class="hs-identifier hs-var">fs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-405"></span><span>
</span><span id="line-406"></span><span>
</span><span id="line-407"></span><span class="hs-comment">{-
************************************************************************
*                                                                      *
        Constructing syntax with no location info
*                                                                      *
************************************************************************
-}</span><span>
</span><span id="line-414"></span><span>
</span><span id="line-415"></span><span id="local-6989586621680870583"><span class="annot"><a href="GHC.Hs.Utils.html#nlHsVar"><span class="hs-identifier hs-type">nlHsVar</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870583"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870583"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-416"></span><span id="nlHsVar"><span class="annot"><span class="annottext">nlHsVar :: forall (id :: Pass). IdP (GhcPass id) -&gt; LHsExpr (GhcPass id)
</span><a href="GHC.Hs.Utils.html#nlHsVar"><span class="hs-identifier hs-var hs-var">nlHsVar</span></a></span></span><span> </span><span id="local-6989586621680869694"><span class="annot"><span class="annottext">IdP (GhcPass id)
</span><a href="#local-6989586621680869694"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsExpr (GhcPass id) -&gt; Located (HsExpr (GhcPass id))
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XVar (GhcPass id)
-&gt; Located (IdP (GhcPass id)) -&gt; HsExpr (GhcPass id)
forall p. XVar p -&gt; Located (IdP p) -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsVar"><span class="hs-identifier hs-var">HsVar</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XVar (GhcPass id)
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IdGhcP id -&gt; Located (IdGhcP id)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="annot"><span class="annottext">IdGhcP id
IdP (GhcPass id)
</span><a href="#local-6989586621680869694"><span class="hs-identifier hs-var">n</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-417"></span><span>
</span><span id="line-418"></span><span id="local-6989586621680870580"><span class="annot"><a href="GHC.Hs.Utils.html#nl_HsVar"><span class="hs-identifier hs-type">nl_HsVar</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870580"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsExpr"><span class="hs-identifier hs-type">HsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870580"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-419"></span><span id="nl_HsVar"><span class="annot"><span class="annottext">nl_HsVar :: forall (id :: Pass). IdP (GhcPass id) -&gt; HsExpr (GhcPass id)
</span><a href="GHC.Hs.Utils.html#nl_HsVar"><span class="hs-identifier hs-var hs-var">nl_HsVar</span></a></span></span><span> </span><span id="local-6989586621680869693"><span class="annot"><span class="annottext">IdP (GhcPass id)
</span><a href="#local-6989586621680869693"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XVar (GhcPass id)
-&gt; Located (IdP (GhcPass id)) -&gt; HsExpr (GhcPass id)
forall p. XVar p -&gt; Located (IdP p) -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsVar"><span class="hs-identifier hs-var">HsVar</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XVar (GhcPass id)
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IdGhcP id -&gt; Located (IdGhcP id)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="annot"><span class="annottext">IdGhcP id
IdP (GhcPass id)
</span><a href="#local-6989586621680869693"><span class="hs-identifier hs-var">n</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-420"></span><span>
</span><span id="line-421"></span><span class="hs-comment">-- | NB: Only for 'LHsExpr' 'Id'.</span><span>
</span><span id="line-422"></span><span class="annot"><a href="GHC.Hs.Utils.html#nlHsDataCon"><span class="hs-identifier hs-type">nlHsDataCon</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Core.DataCon.html#DataCon"><span class="hs-identifier hs-type">DataCon</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span>
</span><span id="line-423"></span><span id="nlHsDataCon"><span class="annot"><span class="annottext">nlHsDataCon :: DataCon -&gt; LHsExpr GhcTc
</span><a href="GHC.Hs.Utils.html#nlHsDataCon"><span class="hs-identifier hs-var hs-var">nlHsDataCon</span></a></span></span><span> </span><span id="local-6989586621680869692"><span class="annot"><span class="annottext">DataCon
</span><a href="#local-6989586621680869692"><span class="hs-identifier hs-var">con</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; LHsExpr GhcTc
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XConLikeOut GhcTc -&gt; ConLike -&gt; HsExpr GhcTc
forall p. XConLikeOut p -&gt; ConLike -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsConLikeOut"><span class="hs-identifier hs-var">HsConLikeOut</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XConLikeOut GhcTc
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">DataCon -&gt; ConLike
</span><a href="GHC.Core.ConLike.html#RealDataCon"><span class="hs-identifier hs-var">RealDataCon</span></a></span><span> </span><span class="annot"><span class="annottext">DataCon
</span><a href="#local-6989586621680869692"><span class="hs-identifier hs-var">con</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-424"></span><span>
</span><span id="line-425"></span><span id="local-6989586621680870576"><span class="annot"><a href="GHC.Hs.Utils.html#nlHsLit"><span class="hs-identifier hs-type">nlHsLit</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Lit.html#HsLit"><span class="hs-identifier hs-type">HsLit</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870576"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870576"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-426"></span><span id="nlHsLit"><span class="annot"><span class="annottext">nlHsLit :: forall (p :: Pass). HsLit (GhcPass p) -&gt; LHsExpr (GhcPass p)
</span><a href="GHC.Hs.Utils.html#nlHsLit"><span class="hs-identifier hs-var hs-var">nlHsLit</span></a></span></span><span> </span><span id="local-6989586621680869689"><span class="annot"><span class="annottext">HsLit (GhcPass p)
</span><a href="#local-6989586621680869689"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsExpr (GhcPass p) -&gt; Located (HsExpr (GhcPass p))
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XLitE (GhcPass p) -&gt; HsLit (GhcPass p) -&gt; HsExpr (GhcPass p)
forall p. XLitE p -&gt; HsLit p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsLit"><span class="hs-identifier hs-var">HsLit</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XLitE (GhcPass p)
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">HsLit (GhcPass p)
</span><a href="#local-6989586621680869689"><span class="hs-identifier hs-var">n</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-427"></span><span>
</span><span id="line-428"></span><span id="local-6989586621680870573"><span class="annot"><a href="GHC.Hs.Utils.html#nlHsIntLit"><span class="hs-identifier hs-type">nlHsIntLit</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Integer</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870573"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-429"></span><span id="nlHsIntLit"><span class="annot"><span class="annottext">nlHsIntLit :: forall (p :: Pass). Integer -&gt; LHsExpr (GhcPass p)
</span><a href="GHC.Hs.Utils.html#nlHsIntLit"><span class="hs-identifier hs-var hs-var">nlHsIntLit</span></a></span></span><span> </span><span id="local-6989586621680869685"><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680869685"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsExpr (GhcPass p) -&gt; Located (HsExpr (GhcPass p))
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XLitE (GhcPass p) -&gt; HsLit (GhcPass p) -&gt; HsExpr (GhcPass p)
forall p. XLitE p -&gt; HsLit p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsLit"><span class="hs-identifier hs-var">HsLit</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XLitE (GhcPass p)
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XHsInt (GhcPass p) -&gt; IntegralLit -&gt; HsLit (GhcPass p)
forall x. XHsInt x -&gt; IntegralLit -&gt; HsLit x
</span><a href="GHC.Hs.Lit.html#HsInt"><span class="hs-identifier hs-var">HsInt</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XHsInt (GhcPass p)
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Integer -&gt; IntegralLit
forall a. Integral a =&gt; a -&gt; IntegralLit
</span><a href="GHC.Types.Basic.html#mkIntegralLit"><span class="hs-identifier hs-var">mkIntegralLit</span></a></span><span> </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680869685"><span class="hs-identifier hs-var">n</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-430"></span><span>
</span><span id="line-431"></span><span id="local-6989586621680870569"><span class="annot"><a href="GHC.Hs.Utils.html#nlVarPat"><span class="hs-identifier hs-type">nlVarPat</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870569"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870569"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-432"></span><span id="nlVarPat"><span class="annot"><span class="annottext">nlVarPat :: forall (id :: Pass). IdP (GhcPass id) -&gt; LPat (GhcPass id)
</span><a href="GHC.Hs.Utils.html#nlVarPat"><span class="hs-identifier hs-var hs-var">nlVarPat</span></a></span></span><span> </span><span id="local-6989586621680869682"><span class="annot"><span class="annottext">IdP (GhcPass id)
</span><a href="#local-6989586621680869682"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Pat (GhcPass id) -&gt; Located (Pat (GhcPass id))
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XVarPat (GhcPass id)
-&gt; Located (IdP (GhcPass id)) -&gt; Pat (GhcPass id)
forall p. XVarPat p -&gt; Located (IdP p) -&gt; Pat p
</span><a href="GHC.Hs.Pat.html#VarPat"><span class="hs-identifier hs-var">VarPat</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XVarPat (GhcPass id)
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IdGhcP id -&gt; Located (IdGhcP id)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="annot"><span class="annottext">IdGhcP id
IdP (GhcPass id)
</span><a href="#local-6989586621680869682"><span class="hs-identifier hs-var">n</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-433"></span><span>
</span><span id="line-434"></span><span class="annot"><a href="GHC.Hs.Utils.html#nlLitPat"><span class="hs-identifier hs-type">nlLitPat</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Lit.html#HsLit"><span class="hs-identifier hs-type">HsLit</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-435"></span><span id="nlLitPat"><span class="annot"><span class="annottext">nlLitPat :: HsLit GhcPs -&gt; LPat GhcPs
</span><a href="GHC.Hs.Utils.html#nlLitPat"><span class="hs-identifier hs-var hs-var">nlLitPat</span></a></span></span><span> </span><span id="local-6989586621680869680"><span class="annot"><span class="annottext">HsLit GhcPs
</span><a href="#local-6989586621680869680"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Pat GhcPs -&gt; Located (Pat GhcPs)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XLitPat GhcPs -&gt; HsLit GhcPs -&gt; Pat GhcPs
forall p. XLitPat p -&gt; HsLit p -&gt; Pat p
</span><a href="GHC.Hs.Pat.html#LitPat"><span class="hs-identifier hs-var">LitPat</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XLitPat GhcPs
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">HsLit GhcPs
</span><a href="#local-6989586621680869680"><span class="hs-identifier hs-var">l</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-436"></span><span>
</span><span id="line-437"></span><span id="local-6989586621680870686"><span class="annot"><a href="GHC.Hs.Utils.html#nlHsApp"><span class="hs-identifier hs-type">nlHsApp</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#IsPass"><span class="hs-identifier hs-type">IsPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870686"><span class="hs-identifier hs-type">id</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870686"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870686"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870686"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-438"></span><span id="nlHsApp"><span class="annot"><span class="annottext">nlHsApp :: forall (id :: Pass).
IsPass id =&gt;
LHsExpr (GhcPass id)
-&gt; LHsExpr (GhcPass id) -&gt; LHsExpr (GhcPass id)
</span><a href="GHC.Hs.Utils.html#nlHsApp"><span class="hs-identifier hs-var hs-var">nlHsApp</span></a></span></span><span> </span><span id="local-6989586621680869676"><span class="annot"><span class="annottext">LHsExpr (GhcPass id)
</span><a href="#local-6989586621680869676"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621680869675"><span class="annot"><span class="annottext">LHsExpr (GhcPass id)
</span><a href="#local-6989586621680869675"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsExpr (GhcPass id) -&gt; LHsExpr (GhcPass id)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XApp (GhcPass id)
-&gt; LHsExpr (GhcPass id)
-&gt; LHsExpr (GhcPass id)
-&gt; HsExpr (GhcPass id)
forall p. XApp p -&gt; LHsExpr p -&gt; LHsExpr p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsApp"><span class="hs-identifier hs-var">HsApp</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XApp (GhcPass id)
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr (GhcPass id)
</span><a href="#local-6989586621680869676"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr (GhcPass id) -&gt; LHsExpr (GhcPass id)
forall (id :: Pass).
IsPass id =&gt;
LHsExpr (GhcPass id) -&gt; LHsExpr (GhcPass id)
</span><a href="GHC.Hs.Utils.html#mkLHsPar"><span class="hs-identifier hs-var">mkLHsPar</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr (GhcPass id)
</span><a href="#local-6989586621680869675"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-439"></span><span>
</span><span id="line-440"></span><span class="annot"><a href="GHC.Hs.Utils.html#nlHsSyntaxApps"><span class="hs-identifier hs-type">nlHsSyntaxApps</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#SyntaxExprTc"><span class="hs-identifier hs-type">SyntaxExprTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-441"></span><span>               </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span>
</span><span id="line-442"></span><span id="nlHsSyntaxApps"><span class="annot"><span class="annottext">nlHsSyntaxApps :: SyntaxExprTc -&gt; [LHsExpr GhcTc] -&gt; LHsExpr GhcTc
</span><a href="GHC.Hs.Utils.html#nlHsSyntaxApps"><span class="hs-identifier hs-var hs-var">nlHsSyntaxApps</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#SyntaxExprTc"><span class="hs-identifier hs-type">SyntaxExprTc</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">syn_expr :: SyntaxExprTc -&gt; HsExpr GhcTc
</span><a href="GHC.Hs.Expr.html#syn_expr"><span class="hs-identifier hs-var">syn_expr</span></a></span><span>      </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869672"><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621680869672"><span class="hs-identifier hs-var">fun</span></a></span></span><span>
</span><span id="line-443"></span><span>                             </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">syn_arg_wraps :: SyntaxExprTc -&gt; [HsWrapper]
</span><a href="GHC.Hs.Expr.html#syn_arg_wraps"><span class="hs-identifier hs-var">syn_arg_wraps</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869670"><span class="annot"><span class="annottext">[HsWrapper]
</span><a href="#local-6989586621680869670"><span class="hs-identifier hs-var">arg_wraps</span></a></span></span><span>
</span><span id="line-444"></span><span>                             </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">syn_res_wrap :: SyntaxExprTc -&gt; HsWrapper
</span><a href="GHC.Hs.Expr.html#syn_res_wrap"><span class="hs-identifier hs-var">syn_res_wrap</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869668"><span class="annot"><span class="annottext">HsWrapper
</span><a href="#local-6989586621680869668"><span class="hs-identifier hs-var">res_wrap</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span id="local-6989586621680869667"><span class="annot"><span class="annottext">[LHsExpr GhcTc]
</span><a href="#local-6989586621680869667"><span class="hs-identifier hs-var">args</span></a></span></span><span>
</span><span id="line-445"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsWrapper -&gt; LHsExpr GhcTc -&gt; LHsExpr GhcTc
</span><a href="GHC.Hs.Utils.html#mkLHsWrap"><span class="hs-identifier hs-var">mkLHsWrap</span></a></span><span> </span><span class="annot"><span class="annottext">HsWrapper
</span><a href="#local-6989586621680869668"><span class="hs-identifier hs-var">res_wrap</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(LHsExpr GhcTc -&gt; LHsExpr GhcTc -&gt; LHsExpr GhcTc)
-&gt; LHsExpr GhcTc -&gt; [LHsExpr GhcTc] -&gt; LHsExpr GhcTc
forall (t :: * -&gt; *) b a.
Foldable t =&gt;
(b -&gt; a -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldl%27"><span class="hs-identifier hs-var">foldl'</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc -&gt; LHsExpr GhcTc -&gt; LHsExpr GhcTc
forall (id :: Pass).
IsPass id =&gt;
LHsExpr (GhcPass id)
-&gt; LHsExpr (GhcPass id) -&gt; LHsExpr (GhcPass id)
</span><a href="GHC.Hs.Utils.html#nlHsApp"><span class="hs-identifier hs-var">nlHsApp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsExpr GhcTc -&gt; LHsExpr GhcTc
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621680869672"><span class="hs-identifier hs-var">fun</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String
-&gt; (HsWrapper -&gt; LHsExpr GhcTc -&gt; LHsExpr GhcTc)
-&gt; [HsWrapper]
-&gt; [LHsExpr GhcTc]
-&gt; [LHsExpr GhcTc]
forall a b c. String -&gt; (a -&gt; b -&gt; c) -&gt; [a] -&gt; [b] -&gt; [c]
</span><a href="GHC.Utils.Misc.html#zipWithEqual"><span class="hs-identifier hs-var">zipWithEqual</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;nlHsSyntaxApps&quot;</span></span><span>
</span><span id="line-446"></span><span>                                                     </span><span class="annot"><span class="annottext">HsWrapper -&gt; LHsExpr GhcTc -&gt; LHsExpr GhcTc
</span><a href="GHC.Hs.Utils.html#mkLHsWrap"><span class="hs-identifier hs-var">mkLHsWrap</span></a></span><span> </span><span class="annot"><span class="annottext">[HsWrapper]
</span><a href="#local-6989586621680869670"><span class="hs-identifier hs-var">arg_wraps</span></a></span><span> </span><span class="annot"><span class="annottext">[LHsExpr GhcTc]
</span><a href="#local-6989586621680869667"><span class="hs-identifier hs-var">args</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-447"></span><span class="annot"><a href="GHC.Hs.Utils.html#nlHsSyntaxApps"><span class="hs-identifier hs-var">nlHsSyntaxApps</span></a></span><span> </span><span class="annot"><span class="annottext">SyntaxExprTc
</span><a href="GHC.Hs.Expr.html#NoSyntaxExprTc"><span class="hs-identifier hs-var">NoSyntaxExprTc</span></a></span><span> </span><span id="local-6989586621680869664"><span class="annot"><span class="annottext">[LHsExpr GhcTc]
</span><a href="#local-6989586621680869664"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc -&gt; LHsExpr GhcTc
forall a. HasCallStack =&gt; String -&gt; SDoc -&gt; a
</span><a href="GHC.Utils.Outputable.html#pprPanic"><span class="hs-identifier hs-var">pprPanic</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;nlHsSyntaxApps&quot;</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[LHsExpr GhcTc] -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[LHsExpr GhcTc]
</span><a href="#local-6989586621680869664"><span class="hs-identifier hs-var">args</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-448"></span><span>  </span><span class="hs-comment">-- this function should never be called in scenarios where there is no</span><span>
</span><span id="line-449"></span><span>  </span><span class="hs-comment">-- syntax expr</span><span>
</span><span id="line-450"></span><span>
</span><span id="line-451"></span><span id="local-6989586621680870556"><span class="annot"><a href="GHC.Hs.Utils.html#nlHsApps"><span class="hs-identifier hs-type">nlHsApps</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#IsPass"><span class="hs-identifier hs-type">IsPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870556"><span class="hs-identifier hs-type">id</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870556"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870556"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870556"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-452"></span><span id="nlHsApps"><span class="annot"><span class="annottext">nlHsApps :: forall (id :: Pass).
IsPass id =&gt;
IdP (GhcPass id) -&gt; [LHsExpr (GhcPass id)] -&gt; LHsExpr (GhcPass id)
</span><a href="GHC.Hs.Utils.html#nlHsApps"><span class="hs-identifier hs-var hs-var">nlHsApps</span></a></span></span><span> </span><span id="local-6989586621680869658"><span class="annot"><span class="annottext">IdP (GhcPass id)
</span><a href="#local-6989586621680869658"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621680869657"><span class="annot"><span class="annottext">[LHsExpr (GhcPass id)]
</span><a href="#local-6989586621680869657"><span class="hs-identifier hs-var">xs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(LHsExpr (GhcPass id)
 -&gt; LHsExpr (GhcPass id) -&gt; LHsExpr (GhcPass id))
-&gt; LHsExpr (GhcPass id)
-&gt; [LHsExpr (GhcPass id)]
-&gt; LHsExpr (GhcPass id)
forall (t :: * -&gt; *) b a.
Foldable t =&gt;
(b -&gt; a -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldl%27"><span class="hs-identifier hs-var">foldl'</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr (GhcPass id)
-&gt; LHsExpr (GhcPass id) -&gt; LHsExpr (GhcPass id)
forall (id :: Pass).
IsPass id =&gt;
LHsExpr (GhcPass id)
-&gt; LHsExpr (GhcPass id) -&gt; LHsExpr (GhcPass id)
</span><a href="GHC.Hs.Utils.html#nlHsApp"><span class="hs-identifier hs-var">nlHsApp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IdP (GhcPass id) -&gt; LHsExpr (GhcPass id)
forall (id :: Pass). IdP (GhcPass id) -&gt; LHsExpr (GhcPass id)
</span><a href="GHC.Hs.Utils.html#nlHsVar"><span class="hs-identifier hs-var">nlHsVar</span></a></span><span> </span><span class="annot"><span class="annottext">IdP (GhcPass id)
</span><a href="#local-6989586621680869658"><span class="hs-identifier hs-var">f</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[LHsExpr (GhcPass id)]
</span><a href="#local-6989586621680869657"><span class="hs-identifier hs-var">xs</span></a></span><span>
</span><span id="line-453"></span><span>
</span><span id="line-454"></span><span id="local-6989586621680870554"><span class="annot"><a href="GHC.Hs.Utils.html#nlHsVarApps"><span class="hs-identifier hs-type">nlHsVarApps</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870554"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870554"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870554"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-455"></span><span id="nlHsVarApps"><span class="annot"><span class="annottext">nlHsVarApps :: forall (id :: Pass).
IdP (GhcPass id) -&gt; [IdP (GhcPass id)] -&gt; LHsExpr (GhcPass id)
</span><a href="GHC.Hs.Utils.html#nlHsVarApps"><span class="hs-identifier hs-var hs-var">nlHsVarApps</span></a></span></span><span> </span><span id="local-6989586621680869653"><span class="annot"><span class="annottext">IdP (GhcPass id)
</span><a href="#local-6989586621680869653"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621680869652"><span class="annot"><span class="annottext">[IdP (GhcPass id)]
</span><a href="#local-6989586621680869652"><span class="hs-identifier hs-var">xs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsExpr (GhcPass id) -&gt; Located (HsExpr (GhcPass id))
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(HsExpr (GhcPass id) -&gt; HsExpr (GhcPass id) -&gt; HsExpr (GhcPass id))
-&gt; HsExpr (GhcPass id)
-&gt; [HsExpr (GhcPass id)]
-&gt; HsExpr (GhcPass id)
forall (t :: * -&gt; *) b a.
Foldable t =&gt;
(b -&gt; a -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldl%27"><span class="hs-identifier hs-var">foldl'</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr (GhcPass id) -&gt; HsExpr (GhcPass id) -&gt; HsExpr (GhcPass id)
forall {p}.
(XApp p ~ NoExtField) =&gt;
HsExpr p -&gt; HsExpr p -&gt; HsExpr p
</span><a href="#local-6989586621680869651"><span class="hs-identifier hs-var">mk</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XVar (GhcPass id)
-&gt; Located (IdP (GhcPass id)) -&gt; HsExpr (GhcPass id)
forall p. XVar p -&gt; Located (IdP p) -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsVar"><span class="hs-identifier hs-var">HsVar</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XVar (GhcPass id)
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IdGhcP id -&gt; Located (IdGhcP id)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="annot"><span class="annottext">IdGhcP id
IdP (GhcPass id)
</span><a href="#local-6989586621680869653"><span class="hs-identifier hs-var">f</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-456"></span><span>                                               </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(IdGhcP id -&gt; HsExpr (GhcPass id))
-&gt; [IdGhcP id] -&gt; [HsExpr (GhcPass id)]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="annot"><span class="annottext">XVar (GhcPass id)
-&gt; Located (IdP (GhcPass id)) -&gt; HsExpr (GhcPass id)
forall p. XVar p -&gt; Located (IdP p) -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsVar"><span class="hs-identifier hs-var">HsVar</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XVar (GhcPass id)
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Located (IdGhcP id) -&gt; HsExpr (GhcPass id))
-&gt; (IdGhcP id -&gt; Located (IdGhcP id))
-&gt; IdGhcP id
-&gt; HsExpr (GhcPass id)
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">IdGhcP id -&gt; Located (IdGhcP id)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[IdGhcP id]
[IdP (GhcPass id)]
</span><a href="#local-6989586621680869652"><span class="hs-identifier hs-var">xs</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-457"></span><span>                 </span><span class="hs-keyword">where</span><span>
</span><span id="line-458"></span><span>                   </span><span id="local-6989586621680869651"><span class="annot"><span class="annottext">mk :: HsExpr p -&gt; HsExpr p -&gt; HsExpr p
</span><a href="#local-6989586621680869651"><span class="hs-identifier hs-var hs-var">mk</span></a></span></span><span> </span><span id="local-6989586621680869645"><span class="annot"><span class="annottext">HsExpr p
</span><a href="#local-6989586621680869645"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621680869644"><span class="annot"><span class="annottext">HsExpr p
</span><a href="#local-6989586621680869644"><span class="hs-identifier hs-var">a</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XApp p -&gt; LHsExpr p -&gt; LHsExpr p -&gt; HsExpr p
forall p. XApp p -&gt; LHsExpr p -&gt; LHsExpr p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsApp"><span class="hs-identifier hs-var">HsApp</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XApp p
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsExpr p -&gt; LHsExpr p
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr p
</span><a href="#local-6989586621680869645"><span class="hs-identifier hs-var">f</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsExpr p -&gt; LHsExpr p
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr p
</span><a href="#local-6989586621680869644"><span class="hs-identifier hs-var">a</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-459"></span><span>
</span><span id="line-460"></span><span class="annot"><a href="GHC.Hs.Utils.html#nlConVarPat"><span class="hs-identifier hs-type">nlConVarPat</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Name.Reader.html#RdrName"><span class="hs-identifier hs-type">RdrName</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.Name.Reader.html#RdrName"><span class="hs-identifier hs-type">RdrName</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-461"></span><span id="nlConVarPat"><span class="annot"><span class="annottext">nlConVarPat :: RdrName -&gt; [RdrName] -&gt; LPat GhcPs
</span><a href="GHC.Hs.Utils.html#nlConVarPat"><span class="hs-identifier hs-var hs-var">nlConVarPat</span></a></span></span><span> </span><span id="local-6989586621680869643"><span class="annot"><span class="annottext">RdrName
</span><a href="#local-6989586621680869643"><span class="hs-identifier hs-var">con</span></a></span></span><span> </span><span id="local-6989586621680869642"><span class="annot"><span class="annottext">[RdrName]
</span><a href="#local-6989586621680869642"><span class="hs-identifier hs-var">vars</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RdrName -&gt; [LPat GhcPs] -&gt; LPat GhcPs
</span><a href="GHC.Hs.Utils.html#nlConPat"><span class="hs-identifier hs-var">nlConPat</span></a></span><span> </span><span class="annot"><span class="annottext">RdrName
</span><a href="#local-6989586621680869643"><span class="hs-identifier hs-var">con</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(RdrName -&gt; Located (Pat GhcPs))
-&gt; [RdrName] -&gt; [Located (Pat GhcPs)]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">RdrName -&gt; Located (Pat GhcPs)
forall (id :: Pass). IdP (GhcPass id) -&gt; LPat (GhcPass id)
</span><a href="GHC.Hs.Utils.html#nlVarPat"><span class="hs-identifier hs-var">nlVarPat</span></a></span><span> </span><span class="annot"><span class="annottext">[RdrName]
</span><a href="#local-6989586621680869642"><span class="hs-identifier hs-var">vars</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-462"></span><span>
</span><span id="line-463"></span><span class="annot"><a href="GHC.Hs.Utils.html#nlConVarPatName"><span class="hs-identifier hs-type">nlConVarPatName</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Name.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.Name.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span>
</span><span id="line-464"></span><span id="nlConVarPatName"><span class="annot"><span class="annottext">nlConVarPatName :: Name -&gt; [Name] -&gt; LPat GhcRn
</span><a href="GHC.Hs.Utils.html#nlConVarPatName"><span class="hs-identifier hs-var hs-var">nlConVarPatName</span></a></span></span><span> </span><span id="local-6989586621680869641"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621680869641"><span class="hs-identifier hs-var">con</span></a></span></span><span> </span><span id="local-6989586621680869640"><span class="annot"><span class="annottext">[Name]
</span><a href="#local-6989586621680869640"><span class="hs-identifier hs-var">vars</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name -&gt; [LPat GhcRn] -&gt; LPat GhcRn
</span><a href="GHC.Hs.Utils.html#nlConPatName"><span class="hs-identifier hs-var">nlConPatName</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621680869641"><span class="hs-identifier hs-var">con</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Name -&gt; Located (Pat GhcRn)) -&gt; [Name] -&gt; [Located (Pat GhcRn)]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; Located (Pat GhcRn)
forall (id :: Pass). IdP (GhcPass id) -&gt; LPat (GhcPass id)
</span><a href="GHC.Hs.Utils.html#nlVarPat"><span class="hs-identifier hs-var">nlVarPat</span></a></span><span> </span><span class="annot"><span class="annottext">[Name]
</span><a href="#local-6989586621680869640"><span class="hs-identifier hs-var">vars</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-465"></span><span>
</span><span id="line-466"></span><span class="annot"><a href="GHC.Hs.Utils.html#nlInfixConPat"><span class="hs-identifier hs-type">nlInfixConPat</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Name.Reader.html#RdrName"><span class="hs-identifier hs-type">RdrName</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-467"></span><span id="nlInfixConPat"><span class="annot"><span class="annottext">nlInfixConPat :: RdrName -&gt; LPat GhcPs -&gt; LPat GhcPs -&gt; LPat GhcPs
</span><a href="GHC.Hs.Utils.html#nlInfixConPat"><span class="hs-identifier hs-var hs-var">nlInfixConPat</span></a></span></span><span> </span><span id="local-6989586621680869639"><span class="annot"><span class="annottext">RdrName
</span><a href="#local-6989586621680869639"><span class="hs-identifier hs-var">con</span></a></span></span><span> </span><span id="local-6989586621680869638"><span class="annot"><span class="annottext">LPat GhcPs
</span><a href="#local-6989586621680869638"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621680869637"><span class="annot"><span class="annottext">LPat GhcPs
</span><a href="#local-6989586621680869637"><span class="hs-identifier hs-var">r</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Pat GhcPs -&gt; Located (Pat GhcPs)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Pat GhcPs -&gt; Located (Pat GhcPs))
-&gt; Pat GhcPs -&gt; Located (Pat GhcPs)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">ConPat :: forall p.
XConPat p -&gt; Located (ConLikeP p) -&gt; HsConPatDetails p -&gt; Pat p
</span><a href="GHC.Hs.Pat.html#ConPat"><span class="hs-identifier hs-type">ConPat</span></a></span><span>
</span><span id="line-468"></span><span>  </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">pat_con :: Located (ConLikeP GhcPs)
</span><a href="GHC.Hs.Pat.html#pat_con"><span class="hs-identifier hs-var">pat_con</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RdrName -&gt; Located RdrName
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="annot"><span class="annottext">RdrName
</span><a href="#local-6989586621680869639"><span class="hs-identifier hs-var">con</span></a></span><span>
</span><span id="line-469"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">pat_args :: HsConPatDetails GhcPs
</span><a href="GHC.Hs.Pat.html#pat_args"><span class="hs-identifier hs-var">pat_args</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Located (Pat GhcPs)
-&gt; Located (Pat GhcPs)
-&gt; HsConDetails
     (Located (Pat GhcPs)) (HsRecFields GhcPs (Located (Pat GhcPs)))
forall arg rec. arg -&gt; arg -&gt; HsConDetails arg rec
</span><a href="GHC.Hs.Type.html#InfixCon"><span class="hs-identifier hs-var">InfixCon</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PprPrec -&gt; LPat GhcPs -&gt; LPat GhcPs
forall (p :: Pass).
IsPass p =&gt;
PprPrec -&gt; LPat (GhcPass p) -&gt; LPat (GhcPass p)
</span><a href="GHC.Hs.Pat.html#parenthesizePat"><span class="hs-identifier hs-var">parenthesizePat</span></a></span><span> </span><span class="annot"><span class="annottext">PprPrec
</span><a href="GHC.Types.Basic.html#opPrec"><span class="hs-identifier hs-var">opPrec</span></a></span><span> </span><span class="annot"><span class="annottext">LPat GhcPs
</span><a href="#local-6989586621680869638"><span class="hs-identifier hs-var">l</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-470"></span><span>                        </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PprPrec -&gt; LPat GhcPs -&gt; LPat GhcPs
forall (p :: Pass).
IsPass p =&gt;
PprPrec -&gt; LPat (GhcPass p) -&gt; LPat (GhcPass p)
</span><a href="GHC.Hs.Pat.html#parenthesizePat"><span class="hs-identifier hs-var">parenthesizePat</span></a></span><span> </span><span class="annot"><span class="annottext">PprPrec
</span><a href="GHC.Types.Basic.html#opPrec"><span class="hs-identifier hs-var">opPrec</span></a></span><span> </span><span class="annot"><span class="annottext">LPat GhcPs
</span><a href="#local-6989586621680869637"><span class="hs-identifier hs-var">r</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-471"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">pat_con_ext :: XConPat GhcPs
</span><a href="GHC.Hs.Pat.html#pat_con_ext"><span class="hs-identifier hs-var">pat_con_ext</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NoExtField
XConPat GhcPs
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span>
</span><span id="line-472"></span><span>  </span><span class="hs-special">}</span><span>
</span><span id="line-473"></span><span>
</span><span id="line-474"></span><span class="annot"><a href="GHC.Hs.Utils.html#nlConPat"><span class="hs-identifier hs-type">nlConPat</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Name.Reader.html#RdrName"><span class="hs-identifier hs-type">RdrName</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-475"></span><span id="nlConPat"><span class="annot"><span class="annottext">nlConPat :: RdrName -&gt; [LPat GhcPs] -&gt; LPat GhcPs
</span><a href="GHC.Hs.Utils.html#nlConPat"><span class="hs-identifier hs-var hs-var">nlConPat</span></a></span></span><span> </span><span id="local-6989586621680869630"><span class="annot"><span class="annottext">RdrName
</span><a href="#local-6989586621680869630"><span class="hs-identifier hs-var">con</span></a></span></span><span> </span><span id="local-6989586621680869629"><span class="annot"><span class="annottext">[LPat GhcPs]
</span><a href="#local-6989586621680869629"><span class="hs-identifier hs-var">pats</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Pat GhcPs -&gt; Located (Pat GhcPs)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Pat GhcPs -&gt; Located (Pat GhcPs))
-&gt; Pat GhcPs -&gt; Located (Pat GhcPs)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">ConPat :: forall p.
XConPat p -&gt; Located (ConLikeP p) -&gt; HsConPatDetails p -&gt; Pat p
</span><a href="GHC.Hs.Pat.html#ConPat"><span class="hs-identifier hs-type">ConPat</span></a></span><span>
</span><span id="line-476"></span><span>  </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">pat_con_ext :: XConPat GhcPs
</span><a href="GHC.Hs.Pat.html#pat_con_ext"><span class="hs-identifier hs-var">pat_con_ext</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NoExtField
XConPat GhcPs
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span>
</span><span id="line-477"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">pat_con :: Located (ConLikeP GhcPs)
</span><a href="GHC.Hs.Pat.html#pat_con"><span class="hs-identifier hs-var">pat_con</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RdrName -&gt; Located RdrName
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="annot"><span class="annottext">RdrName
</span><a href="#local-6989586621680869630"><span class="hs-identifier hs-var">con</span></a></span><span>
</span><span id="line-478"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">pat_args :: HsConPatDetails GhcPs
</span><a href="GHC.Hs.Pat.html#pat_args"><span class="hs-identifier hs-var">pat_args</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Located (Pat GhcPs)]
-&gt; HsConDetails
     (Located (Pat GhcPs)) (HsRecFields GhcPs (Located (Pat GhcPs)))
forall arg rec. [arg] -&gt; HsConDetails arg rec
</span><a href="GHC.Hs.Type.html#PrefixCon"><span class="hs-identifier hs-var">PrefixCon</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Located (Pat GhcPs) -&gt; Located (Pat GhcPs))
-&gt; [Located (Pat GhcPs)] -&gt; [Located (Pat GhcPs)]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PprPrec -&gt; LPat GhcPs -&gt; LPat GhcPs
forall (p :: Pass).
IsPass p =&gt;
PprPrec -&gt; LPat (GhcPass p) -&gt; LPat (GhcPass p)
</span><a href="GHC.Hs.Pat.html#parenthesizePat"><span class="hs-identifier hs-var">parenthesizePat</span></a></span><span> </span><span class="annot"><span class="annottext">PprPrec
</span><a href="GHC.Types.Basic.html#appPrec"><span class="hs-identifier hs-var">appPrec</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[Located (Pat GhcPs)]
[LPat GhcPs]
</span><a href="#local-6989586621680869629"><span class="hs-identifier hs-var">pats</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-479"></span><span>  </span><span class="hs-special">}</span><span>
</span><span id="line-480"></span><span>
</span><span id="line-481"></span><span class="annot"><a href="GHC.Hs.Utils.html#nlConPatName"><span class="hs-identifier hs-type">nlConPatName</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Name.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span>
</span><span id="line-482"></span><span id="nlConPatName"><span class="annot"><span class="annottext">nlConPatName :: Name -&gt; [LPat GhcRn] -&gt; LPat GhcRn
</span><a href="GHC.Hs.Utils.html#nlConPatName"><span class="hs-identifier hs-var hs-var">nlConPatName</span></a></span></span><span> </span><span id="local-6989586621680869627"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621680869627"><span class="hs-identifier hs-var">con</span></a></span></span><span> </span><span id="local-6989586621680869626"><span class="annot"><span class="annottext">[LPat GhcRn]
</span><a href="#local-6989586621680869626"><span class="hs-identifier hs-var">pats</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Pat GhcRn -&gt; Located (Pat GhcRn)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Pat GhcRn -&gt; Located (Pat GhcRn))
-&gt; Pat GhcRn -&gt; Located (Pat GhcRn)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">ConPat :: forall p.
XConPat p -&gt; Located (ConLikeP p) -&gt; HsConPatDetails p -&gt; Pat p
</span><a href="GHC.Hs.Pat.html#ConPat"><span class="hs-identifier hs-type">ConPat</span></a></span><span>
</span><span id="line-483"></span><span>  </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">pat_con_ext :: XConPat GhcRn
</span><a href="GHC.Hs.Pat.html#pat_con_ext"><span class="hs-identifier hs-var">pat_con_ext</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NoExtField
XConPat GhcRn
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span>
</span><span id="line-484"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">pat_con :: Located (ConLikeP GhcRn)
</span><a href="GHC.Hs.Pat.html#pat_con"><span class="hs-identifier hs-var">pat_con</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name -&gt; Located Name
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621680869627"><span class="hs-identifier hs-var">con</span></a></span><span>
</span><span id="line-485"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">pat_args :: HsConPatDetails GhcRn
</span><a href="GHC.Hs.Pat.html#pat_args"><span class="hs-identifier hs-var">pat_args</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Located (Pat GhcRn)]
-&gt; HsConDetails
     (Located (Pat GhcRn)) (HsRecFields GhcRn (Located (Pat GhcRn)))
forall arg rec. [arg] -&gt; HsConDetails arg rec
</span><a href="GHC.Hs.Type.html#PrefixCon"><span class="hs-identifier hs-var">PrefixCon</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Located (Pat GhcRn) -&gt; Located (Pat GhcRn))
-&gt; [Located (Pat GhcRn)] -&gt; [Located (Pat GhcRn)]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PprPrec -&gt; LPat GhcRn -&gt; LPat GhcRn
forall (p :: Pass).
IsPass p =&gt;
PprPrec -&gt; LPat (GhcPass p) -&gt; LPat (GhcPass p)
</span><a href="GHC.Hs.Pat.html#parenthesizePat"><span class="hs-identifier hs-var">parenthesizePat</span></a></span><span> </span><span class="annot"><span class="annottext">PprPrec
</span><a href="GHC.Types.Basic.html#appPrec"><span class="hs-identifier hs-var">appPrec</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[Located (Pat GhcRn)]
[LPat GhcRn]
</span><a href="#local-6989586621680869626"><span class="hs-identifier hs-var">pats</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-486"></span><span>  </span><span class="hs-special">}</span><span>
</span><span id="line-487"></span><span>
</span><span id="line-488"></span><span class="annot"><a href="GHC.Hs.Utils.html#nlNullaryConPat"><span class="hs-identifier hs-type">nlNullaryConPat</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Name.Reader.html#RdrName"><span class="hs-identifier hs-type">RdrName</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-489"></span><span id="nlNullaryConPat"><span class="annot"><span class="annottext">nlNullaryConPat :: RdrName -&gt; LPat GhcPs
</span><a href="GHC.Hs.Utils.html#nlNullaryConPat"><span class="hs-identifier hs-var hs-var">nlNullaryConPat</span></a></span></span><span> </span><span id="local-6989586621680869625"><span class="annot"><span class="annottext">RdrName
</span><a href="#local-6989586621680869625"><span class="hs-identifier hs-var">con</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Pat GhcPs -&gt; Located (Pat GhcPs)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Pat GhcPs -&gt; Located (Pat GhcPs))
-&gt; Pat GhcPs -&gt; Located (Pat GhcPs)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">ConPat :: forall p.
XConPat p -&gt; Located (ConLikeP p) -&gt; HsConPatDetails p -&gt; Pat p
</span><a href="GHC.Hs.Pat.html#ConPat"><span class="hs-identifier hs-type">ConPat</span></a></span><span>
</span><span id="line-490"></span><span>  </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">pat_con_ext :: XConPat GhcPs
</span><a href="GHC.Hs.Pat.html#pat_con_ext"><span class="hs-identifier hs-var">pat_con_ext</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NoExtField
XConPat GhcPs
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span>
</span><span id="line-491"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">pat_con :: Located (ConLikeP GhcPs)
</span><a href="GHC.Hs.Pat.html#pat_con"><span class="hs-identifier hs-var">pat_con</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RdrName -&gt; Located RdrName
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="annot"><span class="annottext">RdrName
</span><a href="#local-6989586621680869625"><span class="hs-identifier hs-var">con</span></a></span><span>
</span><span id="line-492"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">pat_args :: HsConPatDetails GhcPs
</span><a href="GHC.Hs.Pat.html#pat_args"><span class="hs-identifier hs-var">pat_args</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Located (Pat GhcPs)]
-&gt; HsConDetails
     (Located (Pat GhcPs)) (HsRecFields GhcPs (Located (Pat GhcPs)))
forall arg rec. [arg] -&gt; HsConDetails arg rec
</span><a href="GHC.Hs.Type.html#PrefixCon"><span class="hs-identifier hs-var">PrefixCon</span></a></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-493"></span><span>  </span><span class="hs-special">}</span><span>
</span><span id="line-494"></span><span>
</span><span id="line-495"></span><span class="annot"><a href="GHC.Hs.Utils.html#nlWildConPat"><span class="hs-identifier hs-type">nlWildConPat</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Core.DataCon.html#DataCon"><span class="hs-identifier hs-type">DataCon</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-496"></span><span id="nlWildConPat"><span class="annot"><span class="annottext">nlWildConPat :: DataCon -&gt; LPat GhcPs
</span><a href="GHC.Hs.Utils.html#nlWildConPat"><span class="hs-identifier hs-var hs-var">nlWildConPat</span></a></span></span><span> </span><span id="local-6989586621680869624"><span class="annot"><span class="annottext">DataCon
</span><a href="#local-6989586621680869624"><span class="hs-identifier hs-var">con</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Pat GhcPs -&gt; Located (Pat GhcPs)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Pat GhcPs -&gt; Located (Pat GhcPs))
-&gt; Pat GhcPs -&gt; Located (Pat GhcPs)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">ConPat :: forall p.
XConPat p -&gt; Located (ConLikeP p) -&gt; HsConPatDetails p -&gt; Pat p
</span><a href="GHC.Hs.Pat.html#ConPat"><span class="hs-identifier hs-type">ConPat</span></a></span><span>
</span><span id="line-497"></span><span>  </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">pat_con_ext :: XConPat GhcPs
</span><a href="GHC.Hs.Pat.html#pat_con_ext"><span class="hs-identifier hs-var">pat_con_ext</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NoExtField
XConPat GhcPs
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span>
</span><span id="line-498"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">pat_con :: Located (ConLikeP GhcPs)
</span><a href="GHC.Hs.Pat.html#pat_con"><span class="hs-identifier hs-var">pat_con</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RdrName -&gt; Located RdrName
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="annot"><span class="annottext">(RdrName -&gt; Located RdrName) -&gt; RdrName -&gt; Located RdrName
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">DataCon -&gt; RdrName
forall thing. NamedThing thing =&gt; thing -&gt; RdrName
</span><a href="GHC.Types.Name.Reader.html#getRdrName"><span class="hs-identifier hs-var">getRdrName</span></a></span><span> </span><span class="annot"><span class="annottext">DataCon
</span><a href="#local-6989586621680869624"><span class="hs-identifier hs-var">con</span></a></span><span>
</span><span id="line-499"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">pat_args :: HsConPatDetails GhcPs
</span><a href="GHC.Hs.Pat.html#pat_args"><span class="hs-identifier hs-var">pat_args</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Located (Pat GhcPs)]
-&gt; HsConDetails
     (Located (Pat GhcPs)) (HsRecFields GhcPs (Located (Pat GhcPs)))
forall arg rec. [arg] -&gt; HsConDetails arg rec
</span><a href="GHC.Hs.Type.html#PrefixCon"><span class="hs-identifier hs-var">PrefixCon</span></a></span><span> </span><span class="annot"><span class="annottext">([Located (Pat GhcPs)]
 -&gt; HsConDetails
      (Located (Pat GhcPs)) (HsRecFields GhcPs (Located (Pat GhcPs))))
-&gt; [Located (Pat GhcPs)]
-&gt; HsConDetails
     (Located (Pat GhcPs)) (HsRecFields GhcPs (Located (Pat GhcPs)))
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-500"></span><span>     </span><span class="annot"><span class="annottext">Int -&gt; Located (Pat GhcPs) -&gt; [Located (Pat GhcPs)]
forall a. Int -&gt; a -&gt; [a]
</span><a href="../../base/src/GHC.List.html#replicate"><span class="hs-identifier hs-var">replicate</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">DataCon -&gt; Int
</span><a href="GHC.Core.DataCon.html#dataConSourceArity"><span class="hs-identifier hs-var">dataConSourceArity</span></a></span><span> </span><span class="annot"><span class="annottext">DataCon
</span><a href="#local-6989586621680869624"><span class="hs-identifier hs-var">con</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-501"></span><span>               </span><span class="annot"><span class="annottext">Located (Pat GhcPs)
LPat GhcPs
</span><a href="GHC.Hs.Utils.html#nlWildPat"><span class="hs-identifier hs-var">nlWildPat</span></a></span><span>
</span><span id="line-502"></span><span>  </span><span class="hs-special">}</span><span>
</span><span id="line-503"></span><span>
</span><span id="line-504"></span><span class="hs-comment">-- | Wildcard pattern - after parsing</span><span>
</span><span id="line-505"></span><span class="annot"><a href="GHC.Hs.Utils.html#nlWildPat"><span class="hs-identifier hs-type">nlWildPat</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-506"></span><span id="nlWildPat"><span class="annot"><span class="annottext">nlWildPat :: LPat GhcPs
</span><a href="GHC.Hs.Utils.html#nlWildPat"><span class="hs-identifier hs-var hs-var">nlWildPat</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Pat GhcPs -&gt; Located (Pat GhcPs)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XWildPat GhcPs -&gt; Pat GhcPs
forall p. XWildPat p -&gt; Pat p
</span><a href="GHC.Hs.Pat.html#WildPat"><span class="hs-identifier hs-var">WildPat</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XWildPat GhcPs
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-507"></span><span>
</span><span id="line-508"></span><span class="hs-comment">-- | Wildcard pattern - after renaming</span><span>
</span><span id="line-509"></span><span class="annot"><a href="GHC.Hs.Utils.html#nlWildPatName"><span class="hs-identifier hs-type">nlWildPatName</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span>
</span><span id="line-510"></span><span id="nlWildPatName"><span class="annot"><span class="annottext">nlWildPatName :: LPat GhcRn
</span><a href="GHC.Hs.Utils.html#nlWildPatName"><span class="hs-identifier hs-var hs-var">nlWildPatName</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Pat GhcRn -&gt; Located (Pat GhcRn)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XWildPat GhcRn -&gt; Pat GhcRn
forall p. XWildPat p -&gt; Pat p
</span><a href="GHC.Hs.Pat.html#WildPat"><span class="hs-identifier hs-var">WildPat</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XWildPat GhcRn
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-511"></span><span>
</span><span id="line-512"></span><span class="annot"><a href="GHC.Hs.Utils.html#nlHsDo"><span class="hs-identifier hs-type">nlHsDo</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsStmtContext"><span class="hs-identifier hs-type">HsStmtContext</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#LStmt"><span class="hs-identifier hs-type">LStmt</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-513"></span><span>       </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-514"></span><span id="nlHsDo"><span class="annot"><span class="annottext">nlHsDo :: HsStmtContext GhcRn -&gt; [ExprLStmt GhcPs] -&gt; Located (HsExpr GhcPs)
</span><a href="GHC.Hs.Utils.html#nlHsDo"><span class="hs-identifier hs-var hs-var">nlHsDo</span></a></span></span><span> </span><span id="local-6989586621680869618"><span class="annot"><span class="annottext">HsStmtContext GhcRn
</span><a href="#local-6989586621680869618"><span class="hs-identifier hs-var">ctxt</span></a></span></span><span> </span><span id="local-6989586621680869617"><span class="annot"><span class="annottext">[ExprLStmt GhcPs]
</span><a href="#local-6989586621680869617"><span class="hs-identifier hs-var">stmts</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcPs -&gt; Located (HsExpr GhcPs)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsStmtContext GhcRn -&gt; [ExprLStmt GhcPs] -&gt; HsExpr GhcPs
</span><a href="GHC.Hs.Utils.html#mkHsDo"><span class="hs-identifier hs-var">mkHsDo</span></a></span><span> </span><span class="annot"><span class="annottext">HsStmtContext GhcRn
</span><a href="#local-6989586621680869618"><span class="hs-identifier hs-var">ctxt</span></a></span><span> </span><span class="annot"><span class="annottext">[ExprLStmt GhcPs]
</span><a href="#local-6989586621680869617"><span class="hs-identifier hs-var">stmts</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-515"></span><span>
</span><span id="line-516"></span><span class="annot"><a href="GHC.Hs.Utils.html#nlHsOpApp"><span class="hs-identifier hs-type">nlHsOpApp</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-517"></span><span id="nlHsOpApp"><span class="annot"><span class="annottext">nlHsOpApp :: Located (HsExpr GhcPs)
-&gt; IdP GhcPs -&gt; Located (HsExpr GhcPs) -&gt; Located (HsExpr GhcPs)
</span><a href="GHC.Hs.Utils.html#nlHsOpApp"><span class="hs-identifier hs-var hs-var">nlHsOpApp</span></a></span></span><span> </span><span id="local-6989586621680869616"><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869616"><span class="hs-identifier hs-var">e1</span></a></span></span><span> </span><span id="local-6989586621680869615"><span class="annot"><span class="annottext">IdP GhcPs
</span><a href="#local-6989586621680869615"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span id="local-6989586621680869614"><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869614"><span class="hs-identifier hs-var">e2</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcPs -&gt; Located (HsExpr GhcPs)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
-&gt; IdP GhcPs -&gt; Located (HsExpr GhcPs) -&gt; HsExpr GhcPs
</span><a href="GHC.Hs.Utils.html#mkHsOpApp"><span class="hs-identifier hs-var">mkHsOpApp</span></a></span><span> </span><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869616"><span class="hs-identifier hs-var">e1</span></a></span><span> </span><span class="annot"><span class="annottext">IdP GhcPs
</span><a href="#local-6989586621680869615"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869614"><span class="hs-identifier hs-var">e2</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-518"></span><span>
</span><span id="line-519"></span><span class="annot"><a href="GHC.Hs.Utils.html#nlHsLam"><span class="hs-identifier hs-type">nlHsLam</span></a></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LMatch"><span class="hs-identifier hs-type">LMatch</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-520"></span><span id="local-6989586621680869613"><span class="annot"><a href="GHC.Hs.Utils.html#nlHsPar"><span class="hs-identifier hs-type">nlHsPar</span></a></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680869613"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680869613"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-521"></span><span class="annot"><a href="GHC.Hs.Utils.html#nlHsCase"><span class="hs-identifier hs-type">nlHsCase</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#LMatch"><span class="hs-identifier hs-type">LMatch</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-522"></span><span>         </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-523"></span><span class="annot"><a href="GHC.Hs.Utils.html#nlList"><span class="hs-identifier hs-type">nlList</span></a></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-524"></span><span>
</span><span id="line-525"></span><span id="nlHsLam"><span class="annot"><span class="annottext">nlHsLam :: LMatch GhcPs (Located (HsExpr GhcPs)) -&gt; Located (HsExpr GhcPs)
</span><a href="GHC.Hs.Utils.html#nlHsLam"><span class="hs-identifier hs-var hs-var">nlHsLam</span></a></span></span><span> </span><span id="local-6989586621680869612"><span class="annot"><span class="annottext">LMatch GhcPs (Located (HsExpr GhcPs))
</span><a href="#local-6989586621680869612"><span class="hs-identifier hs-var">match</span></a></span></span><span>          </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcPs -&gt; Located (HsExpr GhcPs)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XLam GhcPs
-&gt; MatchGroup GhcPs (Located (HsExpr GhcPs)) -&gt; HsExpr GhcPs
forall p. XLam p -&gt; MatchGroup p (LHsExpr p) -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsLam"><span class="hs-identifier hs-var">HsLam</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XLam GhcPs
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Origin
-&gt; [LMatch GhcPs (Located (HsExpr GhcPs))]
-&gt; MatchGroup GhcPs (Located (HsExpr GhcPs))
forall name (body :: * -&gt; *).
(XMG name (Located (body name)) ~ NoExtField) =&gt;
Origin
-&gt; [LMatch name (Located (body name))]
-&gt; MatchGroup name (Located (body name))
</span><a href="GHC.Hs.Utils.html#mkMatchGroup"><span class="hs-identifier hs-var">mkMatchGroup</span></a></span><span> </span><span class="annot"><span class="annottext">Origin
</span><a href="GHC.Types.Basic.html#Generated"><span class="hs-identifier hs-var">Generated</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">LMatch GhcPs (Located (HsExpr GhcPs))
</span><a href="#local-6989586621680869612"><span class="hs-identifier hs-var">match</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-526"></span><span id="nlHsPar"><span class="annot"><span class="annottext">nlHsPar :: forall (id :: Pass). LHsExpr (GhcPass id) -&gt; LHsExpr (GhcPass id)
</span><a href="GHC.Hs.Utils.html#nlHsPar"><span class="hs-identifier hs-var hs-var">nlHsPar</span></a></span></span><span> </span><span id="local-6989586621680869611"><span class="annot"><span class="annottext">LHsExpr (GhcPass id)
</span><a href="#local-6989586621680869611"><span class="hs-identifier hs-var">e</span></a></span></span><span>              </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsExpr (GhcPass id) -&gt; LHsExpr (GhcPass id)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XPar (GhcPass id) -&gt; LHsExpr (GhcPass id) -&gt; HsExpr (GhcPass id)
forall p. XPar p -&gt; LHsExpr p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsPar"><span class="hs-identifier hs-var">HsPar</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XPar (GhcPass id)
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr (GhcPass id)
</span><a href="#local-6989586621680869611"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-527"></span><span>
</span><span id="line-528"></span><span class="hs-comment">-- nlHsIf should generate if-expressions which are NOT subject to</span><span>
</span><span id="line-529"></span><span class="hs-comment">-- RebindableSyntax, so the first field of HsIf is False. (#12080)</span><span>
</span><span id="line-530"></span><span class="annot"><a href="GHC.Hs.Utils.html#nlHsIf"><span class="hs-identifier hs-type">nlHsIf</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-531"></span><span id="nlHsIf"><span class="annot"><span class="annottext">nlHsIf :: Located (HsExpr GhcPs)
-&gt; Located (HsExpr GhcPs)
-&gt; Located (HsExpr GhcPs)
-&gt; Located (HsExpr GhcPs)
</span><a href="GHC.Hs.Utils.html#nlHsIf"><span class="hs-identifier hs-var hs-var">nlHsIf</span></a></span></span><span> </span><span id="local-6989586621680869610"><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869610"><span class="hs-identifier hs-var">cond</span></a></span></span><span> </span><span id="local-6989586621680869609"><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869609"><span class="hs-identifier hs-var">true</span></a></span></span><span> </span><span id="local-6989586621680869608"><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869608"><span class="hs-identifier hs-var">false</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcPs -&gt; Located (HsExpr GhcPs)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XIf GhcPs
-&gt; Located (HsExpr GhcPs)
-&gt; Located (HsExpr GhcPs)
-&gt; Located (HsExpr GhcPs)
-&gt; HsExpr GhcPs
forall p. XIf p -&gt; LHsExpr p -&gt; LHsExpr p -&gt; LHsExpr p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsIf"><span class="hs-identifier hs-var">HsIf</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XIf GhcPs
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869610"><span class="hs-identifier hs-var">cond</span></a></span><span> </span><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869609"><span class="hs-identifier hs-var">true</span></a></span><span> </span><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869608"><span class="hs-identifier hs-var">false</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-532"></span><span>
</span><span id="line-533"></span><span id="nlHsCase"><span class="annot"><span class="annottext">nlHsCase :: Located (HsExpr GhcPs)
-&gt; [LMatch GhcPs (Located (HsExpr GhcPs))]
-&gt; Located (HsExpr GhcPs)
</span><a href="GHC.Hs.Utils.html#nlHsCase"><span class="hs-identifier hs-var hs-var">nlHsCase</span></a></span></span><span> </span><span id="local-6989586621680869607"><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869607"><span class="hs-identifier hs-var">expr</span></a></span></span><span> </span><span id="local-6989586621680869606"><span class="annot"><span class="annottext">[LMatch GhcPs (Located (HsExpr GhcPs))]
</span><a href="#local-6989586621680869606"><span class="hs-identifier hs-var">matches</span></a></span></span><span>
</span><span id="line-534"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcPs -&gt; Located (HsExpr GhcPs)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XCase GhcPs
-&gt; Located (HsExpr GhcPs)
-&gt; MatchGroup GhcPs (Located (HsExpr GhcPs))
-&gt; HsExpr GhcPs
forall p.
XCase p -&gt; LHsExpr p -&gt; MatchGroup p (LHsExpr p) -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsCase"><span class="hs-identifier hs-var">HsCase</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XCase GhcPs
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869607"><span class="hs-identifier hs-var">expr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Origin
-&gt; [LMatch GhcPs (Located (HsExpr GhcPs))]
-&gt; MatchGroup GhcPs (Located (HsExpr GhcPs))
forall name (body :: * -&gt; *).
(XMG name (Located (body name)) ~ NoExtField) =&gt;
Origin
-&gt; [LMatch name (Located (body name))]
-&gt; MatchGroup name (Located (body name))
</span><a href="GHC.Hs.Utils.html#mkMatchGroup"><span class="hs-identifier hs-var">mkMatchGroup</span></a></span><span> </span><span class="annot"><span class="annottext">Origin
</span><a href="GHC.Types.Basic.html#Generated"><span class="hs-identifier hs-var">Generated</span></a></span><span> </span><span class="annot"><span class="annottext">[LMatch GhcPs (Located (HsExpr GhcPs))]
</span><a href="#local-6989586621680869606"><span class="hs-identifier hs-var">matches</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-535"></span><span id="nlList"><span class="annot"><span class="annottext">nlList :: [Located (HsExpr GhcPs)] -&gt; Located (HsExpr GhcPs)
</span><a href="GHC.Hs.Utils.html#nlList"><span class="hs-identifier hs-var hs-var">nlList</span></a></span></span><span> </span><span id="local-6989586621680869604"><span class="annot"><span class="annottext">[Located (HsExpr GhcPs)]
</span><a href="#local-6989586621680869604"><span class="hs-identifier hs-var">exprs</span></a></span></span><span>          </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcPs -&gt; Located (HsExpr GhcPs)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XExplicitList GhcPs
-&gt; Maybe (SyntaxExpr GhcPs)
-&gt; [Located (HsExpr GhcPs)]
-&gt; HsExpr GhcPs
forall p.
XExplicitList p -&gt; Maybe (SyntaxExpr p) -&gt; [LHsExpr p] -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#ExplicitList"><span class="hs-identifier hs-var">ExplicitList</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XExplicitList GhcPs
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe (SyntaxExpr GhcPs)
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="annot"><span class="annottext">[Located (HsExpr GhcPs)]
</span><a href="#local-6989586621680869604"><span class="hs-identifier hs-var">exprs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-536"></span><span>
</span><span id="line-537"></span><span id="local-6989586621680870535"><span class="annot"><a href="GHC.Hs.Utils.html#nlHsAppTy"><span class="hs-identifier hs-type">nlHsAppTy</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Type.html#LHsType"><span class="hs-identifier hs-type">LHsType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870535"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Type.html#LHsType"><span class="hs-identifier hs-type">LHsType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870535"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Type.html#LHsType"><span class="hs-identifier hs-type">LHsType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870535"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-538"></span><span id="local-6989586621680870531"><span class="annot"><a href="GHC.Hs.Utils.html#nlHsTyVar"><span class="hs-identifier hs-type">nlHsTyVar</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870531"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span>                            </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Type.html#LHsType"><span class="hs-identifier hs-type">LHsType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870531"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-539"></span><span id="local-6989586621680869602"><span class="annot"><a href="GHC.Hs.Utils.html#nlHsFunTy"><span class="hs-identifier hs-type">nlHsFunTy</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Type.html#LHsType"><span class="hs-identifier hs-type">LHsType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680869602"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Type.html#LHsType"><span class="hs-identifier hs-type">LHsType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680869602"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Type.html#LHsType"><span class="hs-identifier hs-type">LHsType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680869602"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-540"></span><span id="local-6989586621680870522"><span class="annot"><a href="GHC.Hs.Utils.html#nlHsParTy"><span class="hs-identifier hs-type">nlHsParTy</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Type.html#LHsType"><span class="hs-identifier hs-type">LHsType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870522"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span>                        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Type.html#LHsType"><span class="hs-identifier hs-type">LHsType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870522"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-541"></span><span>
</span><span id="line-542"></span><span id="nlHsAppTy"><span class="annot"><span class="annottext">nlHsAppTy :: forall (p :: Pass).
LHsType (GhcPass p) -&gt; LHsType (GhcPass p) -&gt; LHsType (GhcPass p)
</span><a href="GHC.Hs.Utils.html#nlHsAppTy"><span class="hs-identifier hs-var hs-var">nlHsAppTy</span></a></span></span><span> </span><span id="local-6989586621680869601"><span class="annot"><span class="annottext">LHsType (GhcPass p)
</span><a href="#local-6989586621680869601"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621680869600"><span class="annot"><span class="annottext">LHsType (GhcPass p)
</span><a href="#local-6989586621680869600"><span class="hs-identifier hs-var">t</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsType (GhcPass p) -&gt; LHsType (GhcPass p)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XAppTy (GhcPass p)
-&gt; LHsType (GhcPass p) -&gt; LHsType (GhcPass p) -&gt; HsType (GhcPass p)
forall pass.
XAppTy pass -&gt; LHsType pass -&gt; LHsType pass -&gt; HsType pass
</span><a href="GHC.Hs.Type.html#HsAppTy"><span class="hs-identifier hs-var">HsAppTy</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XAppTy (GhcPass p)
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">LHsType (GhcPass p)
</span><a href="#local-6989586621680869601"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PprPrec -&gt; LHsType (GhcPass p) -&gt; LHsType (GhcPass p)
forall (p :: Pass).
PprPrec -&gt; LHsType (GhcPass p) -&gt; LHsType (GhcPass p)
</span><a href="GHC.Hs.Type.html#parenthesizeHsType"><span class="hs-identifier hs-var">parenthesizeHsType</span></a></span><span> </span><span class="annot"><span class="annottext">PprPrec
</span><a href="GHC.Types.Basic.html#appPrec"><span class="hs-identifier hs-var">appPrec</span></a></span><span> </span><span class="annot"><span class="annottext">LHsType (GhcPass p)
</span><a href="#local-6989586621680869600"><span class="hs-identifier hs-var">t</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-543"></span><span id="nlHsTyVar"><span class="annot"><span class="annottext">nlHsTyVar :: forall (p :: Pass). IdP (GhcPass p) -&gt; LHsType (GhcPass p)
</span><a href="GHC.Hs.Utils.html#nlHsTyVar"><span class="hs-identifier hs-var hs-var">nlHsTyVar</span></a></span></span><span> </span><span id="local-6989586621680869598"><span class="annot"><span class="annottext">IdP (GhcPass p)
</span><a href="#local-6989586621680869598"><span class="hs-identifier hs-var">x</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsType (GhcPass p) -&gt; Located (HsType (GhcPass p))
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XTyVar (GhcPass p)
-&gt; PromotionFlag -&gt; Located (IdP (GhcPass p)) -&gt; HsType (GhcPass p)
forall pass.
XTyVar pass -&gt; PromotionFlag -&gt; Located (IdP pass) -&gt; HsType pass
</span><a href="GHC.Hs.Type.html#HsTyVar"><span class="hs-identifier hs-var">HsTyVar</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XTyVar (GhcPass p)
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">PromotionFlag
</span><a href="GHC.Types.Basic.html#NotPromoted"><span class="hs-identifier hs-var">NotPromoted</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IdGhcP p -&gt; Located (IdGhcP p)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="annot"><span class="annottext">IdGhcP p
IdP (GhcPass p)
</span><a href="#local-6989586621680869598"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-544"></span><span id="nlHsFunTy"><span class="annot"><span class="annottext">nlHsFunTy :: forall (p :: Pass).
LHsType (GhcPass p) -&gt; LHsType (GhcPass p) -&gt; LHsType (GhcPass p)
</span><a href="GHC.Hs.Utils.html#nlHsFunTy"><span class="hs-identifier hs-var hs-var">nlHsFunTy</span></a></span></span><span> </span><span id="local-6989586621680869595"><span class="annot"><span class="annottext">LHsType (GhcPass p)
</span><a href="#local-6989586621680869595"><span class="hs-identifier hs-var">a</span></a></span></span><span> </span><span id="local-6989586621680869594"><span class="annot"><span class="annottext">LHsType (GhcPass p)
</span><a href="#local-6989586621680869594"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsType (GhcPass p) -&gt; LHsType (GhcPass p)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XFunTy (GhcPass p)
-&gt; HsArrow (GhcPass p)
-&gt; LHsType (GhcPass p)
-&gt; LHsType (GhcPass p)
-&gt; HsType (GhcPass p)
forall pass.
XFunTy pass
-&gt; HsArrow pass -&gt; LHsType pass -&gt; LHsType pass -&gt; HsType pass
</span><a href="GHC.Hs.Type.html#HsFunTy"><span class="hs-identifier hs-var">HsFunTy</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XFunTy (GhcPass p)
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IsUnicodeSyntax -&gt; HsArrow (GhcPass p)
forall pass. IsUnicodeSyntax -&gt; HsArrow pass
</span><a href="GHC.Hs.Type.html#HsUnrestrictedArrow"><span class="hs-identifier hs-var">HsUnrestrictedArrow</span></a></span><span> </span><span class="annot"><span class="annottext">IsUnicodeSyntax
</span><a href="GHC.Parser.Annotation.html#NormalSyntax"><span class="hs-identifier hs-var">NormalSyntax</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PprPrec -&gt; LHsType (GhcPass p) -&gt; LHsType (GhcPass p)
forall (p :: Pass).
PprPrec -&gt; LHsType (GhcPass p) -&gt; LHsType (GhcPass p)
</span><a href="GHC.Hs.Type.html#parenthesizeHsType"><span class="hs-identifier hs-var">parenthesizeHsType</span></a></span><span> </span><span class="annot"><span class="annottext">PprPrec
</span><a href="GHC.Types.Basic.html#funPrec"><span class="hs-identifier hs-var">funPrec</span></a></span><span> </span><span class="annot"><span class="annottext">LHsType (GhcPass p)
</span><a href="#local-6989586621680869595"><span class="hs-identifier hs-var">a</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">LHsType (GhcPass p)
</span><a href="#local-6989586621680869594"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-545"></span><span id="nlHsParTy"><span class="annot"><span class="annottext">nlHsParTy :: forall (p :: Pass). LHsType (GhcPass p) -&gt; LHsType (GhcPass p)
</span><a href="GHC.Hs.Utils.html#nlHsParTy"><span class="hs-identifier hs-var hs-var">nlHsParTy</span></a></span></span><span> </span><span id="local-6989586621680869589"><span class="annot"><span class="annottext">LHsType (GhcPass p)
</span><a href="#local-6989586621680869589"><span class="hs-identifier hs-var">t</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsType (GhcPass p) -&gt; LHsType (GhcPass p)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XParTy (GhcPass p) -&gt; LHsType (GhcPass p) -&gt; HsType (GhcPass p)
forall pass. XParTy pass -&gt; LHsType pass -&gt; HsType pass
</span><a href="GHC.Hs.Type.html#HsParTy"><span class="hs-identifier hs-var">HsParTy</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XParTy (GhcPass p)
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">LHsType (GhcPass p)
</span><a href="#local-6989586621680869589"><span class="hs-identifier hs-var">t</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-546"></span><span>
</span><span id="line-547"></span><span id="local-6989586621680870518"><span class="annot"><a href="GHC.Hs.Utils.html#nlHsTyConApp"><span class="hs-identifier hs-type">nlHsTyConApp</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Basic.html#LexicalFixity"><span class="hs-identifier hs-type">LexicalFixity</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870518"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-548"></span><span>             </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Type.html#LHsTypeArg"><span class="hs-identifier hs-type">LHsTypeArg</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870518"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Type.html#LHsType"><span class="hs-identifier hs-type">LHsType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870518"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-549"></span><span id="nlHsTyConApp"><span class="annot"><span class="annottext">nlHsTyConApp :: forall (p :: Pass).
LexicalFixity
-&gt; IdP (GhcPass p)
-&gt; [LHsTypeArg (GhcPass p)]
-&gt; LHsType (GhcPass p)
</span><a href="GHC.Hs.Utils.html#nlHsTyConApp"><span class="hs-identifier hs-var hs-var">nlHsTyConApp</span></a></span></span><span> </span><span id="local-6989586621680869585"><span class="annot"><span class="annottext">LexicalFixity
</span><a href="#local-6989586621680869585"><span class="hs-identifier hs-var">fixity</span></a></span></span><span> </span><span id="local-6989586621680869584"><span class="annot"><span class="annottext">IdP (GhcPass p)
</span><a href="#local-6989586621680869584"><span class="hs-identifier hs-var">tycon</span></a></span></span><span> </span><span id="local-6989586621680869583"><span class="annot"><span class="annottext">[LHsTypeArg (GhcPass p)]
</span><a href="#local-6989586621680869583"><span class="hs-identifier hs-var">tys</span></a></span></span><span>
</span><span id="line-550"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">LexicalFixity
</span><a href="GHC.Types.Basic.html#Infix"><span class="hs-identifier hs-var">Infix</span></a></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">LexicalFixity
</span><a href="#local-6989586621680869585"><span class="hs-identifier hs-var">fixity</span></a></span><span>
</span><span id="line-551"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Type.html#HsValArg"><span class="hs-identifier hs-type">HsValArg</span></a></span><span> </span><span id="local-6989586621680869580"><span class="annot"><span class="annottext">LHsType (GhcPass p)
</span><a href="#local-6989586621680869580"><span class="hs-identifier hs-var">ty1</span></a></span></span><span> </span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span> </span><span class="annot"><a href="GHC.Hs.Type.html#HsValArg"><span class="hs-identifier hs-type">HsValArg</span></a></span><span> </span><span id="local-6989586621680869579"><span class="annot"><span class="annottext">LHsType (GhcPass p)
</span><a href="#local-6989586621680869579"><span class="hs-identifier hs-var">ty2</span></a></span></span><span> </span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span> </span><span id="local-6989586621680869578"><span class="annot"><span class="annottext">[LHsTypeArg (GhcPass p)]
</span><a href="#local-6989586621680869578"><span class="hs-identifier hs-var">rest</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[LHsTypeArg (GhcPass p)]
</span><a href="#local-6989586621680869583"><span class="hs-identifier hs-var">tys</span></a></span><span>
</span><span id="line-552"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(LHsType (GhcPass p)
 -&gt; LHsTypeArg (GhcPass p) -&gt; LHsType (GhcPass p))
-&gt; LHsType (GhcPass p)
-&gt; [LHsTypeArg (GhcPass p)]
-&gt; LHsType (GhcPass p)
forall (t :: * -&gt; *) b a.
Foldable t =&gt;
(b -&gt; a -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldl%27"><span class="hs-identifier hs-var">foldl'</span></a></span><span> </span><span class="annot"><span class="annottext">LHsType (GhcPass p)
-&gt; LHsTypeArg (GhcPass p) -&gt; LHsType (GhcPass p)
forall (p :: Pass).
LHsType (GhcPass p)
-&gt; LHsTypeArg (GhcPass p) -&gt; LHsType (GhcPass p)
</span><a href="#local-6989586621680869577"><span class="hs-identifier hs-var">mk_app</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsType (GhcPass p) -&gt; LHsType (GhcPass p)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="annot"><span class="annottext">(HsType (GhcPass p) -&gt; LHsType (GhcPass p))
-&gt; HsType (GhcPass p) -&gt; LHsType (GhcPass p)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">XOpTy (GhcPass p)
-&gt; LHsType (GhcPass p)
-&gt; Located (IdP (GhcPass p))
-&gt; LHsType (GhcPass p)
-&gt; HsType (GhcPass p)
forall pass.
XOpTy pass
-&gt; LHsType pass
-&gt; Located (IdP pass)
-&gt; LHsType pass
-&gt; HsType pass
</span><a href="GHC.Hs.Type.html#HsOpTy"><span class="hs-identifier hs-var">HsOpTy</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XOpTy (GhcPass p)
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">LHsType (GhcPass p)
</span><a href="#local-6989586621680869580"><span class="hs-identifier hs-var">ty1</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IdGhcP p -&gt; Located (IdGhcP p)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="annot"><span class="annottext">IdGhcP p
IdP (GhcPass p)
</span><a href="#local-6989586621680869584"><span class="hs-identifier hs-var">tycon</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">LHsType (GhcPass p)
</span><a href="#local-6989586621680869579"><span class="hs-identifier hs-var">ty2</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[LHsTypeArg (GhcPass p)]
</span><a href="#local-6989586621680869578"><span class="hs-identifier hs-var">rest</span></a></span><span>
</span><span id="line-553"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>
</span><span id="line-554"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(LHsType (GhcPass p)
 -&gt; LHsTypeArg (GhcPass p) -&gt; LHsType (GhcPass p))
-&gt; LHsType (GhcPass p)
-&gt; [LHsTypeArg (GhcPass p)]
-&gt; LHsType (GhcPass p)
forall (t :: * -&gt; *) b a.
Foldable t =&gt;
(b -&gt; a -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldl%27"><span class="hs-identifier hs-var">foldl'</span></a></span><span> </span><span class="annot"><span class="annottext">LHsType (GhcPass p)
-&gt; LHsTypeArg (GhcPass p) -&gt; LHsType (GhcPass p)
forall (p :: Pass).
LHsType (GhcPass p)
-&gt; LHsTypeArg (GhcPass p) -&gt; LHsType (GhcPass p)
</span><a href="#local-6989586621680869577"><span class="hs-identifier hs-var">mk_app</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IdP (GhcPass p) -&gt; LHsType (GhcPass p)
forall (p :: Pass). IdP (GhcPass p) -&gt; LHsType (GhcPass p)
</span><a href="GHC.Hs.Utils.html#nlHsTyVar"><span class="hs-identifier hs-var">nlHsTyVar</span></a></span><span> </span><span class="annot"><span class="annottext">IdP (GhcPass p)
</span><a href="#local-6989586621680869584"><span class="hs-identifier hs-var">tycon</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[LHsTypeArg (GhcPass p)]
</span><a href="#local-6989586621680869583"><span class="hs-identifier hs-var">tys</span></a></span><span>
</span><span id="line-555"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-556"></span><span>    </span><span id="local-6989586621680870515"><span class="annot"><a href="#local-6989586621680869577"><span class="hs-identifier hs-type">mk_app</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Type.html#LHsType"><span class="hs-identifier hs-type">LHsType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870515"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Type.html#LHsTypeArg"><span class="hs-identifier hs-type">LHsTypeArg</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870515"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Type.html#LHsType"><span class="hs-identifier hs-type">LHsType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870515"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-557"></span><span>    </span><span id="local-6989586621680869577"><span class="annot"><span class="annottext">mk_app :: forall (p :: Pass).
LHsType (GhcPass p)
-&gt; LHsTypeArg (GhcPass p) -&gt; LHsType (GhcPass p)
</span><a href="#local-6989586621680869577"><span class="hs-identifier hs-var hs-var">mk_app</span></a></span></span><span> </span><span id="local-6989586621680869575"><span class="annot"><span class="annottext">fun :: LHsType (GhcPass p)
</span><a href="#local-6989586621680869575"><span class="hs-identifier hs-var">fun</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Type.html#HsOpTy"><span class="hs-identifier hs-type">HsOpTy</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span id="local-6989586621680869574"><span class="annot"><span class="annottext">LHsTypeArg (GhcPass p)
</span><a href="#local-6989586621680869574"><span class="hs-identifier hs-var">arg</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LHsType (GhcPass p)
-&gt; LHsTypeArg (GhcPass p) -&gt; LHsType (GhcPass p)
forall (p :: Pass).
LHsType (GhcPass p)
-&gt; LHsTypeArg (GhcPass p) -&gt; LHsType (GhcPass p)
</span><a href="#local-6989586621680869577"><span class="hs-identifier hs-var">mk_app</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsType (GhcPass p) -&gt; LHsType (GhcPass p)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="annot"><span class="annottext">(HsType (GhcPass p) -&gt; LHsType (GhcPass p))
-&gt; HsType (GhcPass p) -&gt; LHsType (GhcPass p)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">XParTy (GhcPass p) -&gt; LHsType (GhcPass p) -&gt; HsType (GhcPass p)
forall pass. XParTy pass -&gt; LHsType pass -&gt; HsType pass
</span><a href="GHC.Hs.Type.html#HsParTy"><span class="hs-identifier hs-var">HsParTy</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XParTy (GhcPass p)
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">LHsType (GhcPass p)
</span><a href="#local-6989586621680869575"><span class="hs-identifier hs-var">fun</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">LHsTypeArg (GhcPass p)
</span><a href="#local-6989586621680869574"><span class="hs-identifier hs-var">arg</span></a></span><span>
</span><span id="line-558"></span><span>      </span><span class="hs-comment">-- parenthesize things like `(A + B) C`</span><span>
</span><span id="line-559"></span><span>    </span><span class="annot"><a href="#local-6989586621680869577"><span class="hs-identifier hs-var">mk_app</span></a></span><span> </span><span id="local-6989586621680869573"><span class="annot"><span class="annottext">LHsType (GhcPass p)
</span><a href="#local-6989586621680869573"><span class="hs-identifier hs-var">fun</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Type.html#HsValArg"><span class="hs-identifier hs-type">HsValArg</span></a></span><span> </span><span id="local-6989586621680869572"><span class="annot"><span class="annottext">LHsType (GhcPass p)
</span><a href="#local-6989586621680869572"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsType (GhcPass p) -&gt; LHsType (GhcPass p)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XAppTy (GhcPass p)
-&gt; LHsType (GhcPass p) -&gt; LHsType (GhcPass p) -&gt; HsType (GhcPass p)
forall pass.
XAppTy pass -&gt; LHsType pass -&gt; LHsType pass -&gt; HsType pass
</span><a href="GHC.Hs.Type.html#HsAppTy"><span class="hs-identifier hs-var">HsAppTy</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XAppTy (GhcPass p)
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">LHsType (GhcPass p)
</span><a href="#local-6989586621680869573"><span class="hs-identifier hs-var">fun</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PprPrec -&gt; LHsType (GhcPass p) -&gt; LHsType (GhcPass p)
forall (p :: Pass).
PprPrec -&gt; LHsType (GhcPass p) -&gt; LHsType (GhcPass p)
</span><a href="GHC.Hs.Type.html#parenthesizeHsType"><span class="hs-identifier hs-var">parenthesizeHsType</span></a></span><span> </span><span class="annot"><span class="annottext">PprPrec
</span><a href="GHC.Types.Basic.html#appPrec"><span class="hs-identifier hs-var">appPrec</span></a></span><span> </span><span class="annot"><span class="annottext">LHsType (GhcPass p)
</span><a href="#local-6989586621680869572"><span class="hs-identifier hs-var">ty</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-560"></span><span>    </span><span class="annot"><a href="#local-6989586621680869577"><span class="hs-identifier hs-var">mk_app</span></a></span><span> </span><span id="local-6989586621680869571"><span class="annot"><span class="annottext">LHsType (GhcPass p)
</span><a href="#local-6989586621680869571"><span class="hs-identifier hs-var">fun</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Type.html#HsTypeArg"><span class="hs-identifier hs-type">HsTypeArg</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869569"><span class="annot"><span class="annottext">LHsType (GhcPass p)
</span><a href="#local-6989586621680869569"><span class="hs-identifier hs-var">ki</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsType (GhcPass p) -&gt; LHsType (GhcPass p)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XAppKindTy (GhcPass p)
-&gt; LHsType (GhcPass p) -&gt; LHsType (GhcPass p) -&gt; HsType (GhcPass p)
forall pass.
XAppKindTy pass -&gt; LHsType pass -&gt; LHsType pass -&gt; HsType pass
</span><a href="GHC.Hs.Type.html#HsAppKindTy"><span class="hs-identifier hs-var">HsAppKindTy</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
XAppKindTy (GhcPass p)
</span><a href="GHC.Types.SrcLoc.html#noSrcSpan"><span class="hs-identifier hs-var">noSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">LHsType (GhcPass p)
</span><a href="#local-6989586621680869571"><span class="hs-identifier hs-var">fun</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PprPrec -&gt; LHsType (GhcPass p) -&gt; LHsType (GhcPass p)
forall (p :: Pass).
PprPrec -&gt; LHsType (GhcPass p) -&gt; LHsType (GhcPass p)
</span><a href="GHC.Hs.Type.html#parenthesizeHsType"><span class="hs-identifier hs-var">parenthesizeHsType</span></a></span><span> </span><span class="annot"><span class="annottext">PprPrec
</span><a href="GHC.Types.Basic.html#appPrec"><span class="hs-identifier hs-var">appPrec</span></a></span><span> </span><span class="annot"><span class="annottext">LHsType (GhcPass p)
</span><a href="#local-6989586621680869569"><span class="hs-identifier hs-var">ki</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-561"></span><span>    </span><span class="annot"><a href="#local-6989586621680869577"><span class="hs-identifier hs-var">mk_app</span></a></span><span> </span><span id="local-6989586621680869566"><span class="annot"><span class="annottext">LHsType (GhcPass p)
</span><a href="#local-6989586621680869566"><span class="hs-identifier hs-var">fun</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Type.html#HsArgPar"><span class="hs-identifier hs-type">HsArgPar</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsType (GhcPass p) -&gt; LHsType (GhcPass p)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XParTy (GhcPass p) -&gt; LHsType (GhcPass p) -&gt; HsType (GhcPass p)
forall pass. XParTy pass -&gt; LHsType pass -&gt; HsType pass
</span><a href="GHC.Hs.Type.html#HsParTy"><span class="hs-identifier hs-var">HsParTy</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XParTy (GhcPass p)
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">LHsType (GhcPass p)
</span><a href="#local-6989586621680869566"><span class="hs-identifier hs-var">fun</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-562"></span><span>
</span><span id="line-563"></span><span id="local-6989586621680869564"><span class="annot"><a href="GHC.Hs.Utils.html#nlHsAppKindTy"><span class="hs-identifier hs-type">nlHsAppKindTy</span></a></span><span> </span><span class="hs-glyph">::</span><span>
</span><span id="line-564"></span><span>  </span><span class="annot"><a href="GHC.Hs.Type.html#LHsType"><span class="hs-identifier hs-type">LHsType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680869564"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Type.html#LHsKind"><span class="hs-identifier hs-type">LHsKind</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680869564"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Type.html#LHsType"><span class="hs-identifier hs-type">LHsType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680869564"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-565"></span><span id="nlHsAppKindTy"><span class="annot"><span class="annottext">nlHsAppKindTy :: forall (p :: Pass).
LHsType (GhcPass p) -&gt; LHsType (GhcPass p) -&gt; LHsType (GhcPass p)
</span><a href="GHC.Hs.Utils.html#nlHsAppKindTy"><span class="hs-identifier hs-var hs-var">nlHsAppKindTy</span></a></span></span><span> </span><span id="local-6989586621680869562"><span class="annot"><span class="annottext">LHsType (GhcPass p)
</span><a href="#local-6989586621680869562"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621680869561"><span class="annot"><span class="annottext">LHsType (GhcPass p)
</span><a href="#local-6989586621680869561"><span class="hs-identifier hs-var">k</span></a></span></span><span>
</span><span id="line-566"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsType (GhcPass p) -&gt; LHsType (GhcPass p)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XAppKindTy (GhcPass p)
-&gt; LHsType (GhcPass p) -&gt; LHsType (GhcPass p) -&gt; HsType (GhcPass p)
forall pass.
XAppKindTy pass -&gt; LHsType pass -&gt; LHsType pass -&gt; HsType pass
</span><a href="GHC.Hs.Type.html#HsAppKindTy"><span class="hs-identifier hs-var">HsAppKindTy</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
XAppKindTy (GhcPass p)
</span><a href="GHC.Types.SrcLoc.html#noSrcSpan"><span class="hs-identifier hs-var">noSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">LHsType (GhcPass p)
</span><a href="#local-6989586621680869562"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PprPrec -&gt; LHsType (GhcPass p) -&gt; LHsType (GhcPass p)
forall (p :: Pass).
PprPrec -&gt; LHsType (GhcPass p) -&gt; LHsType (GhcPass p)
</span><a href="GHC.Hs.Type.html#parenthesizeHsType"><span class="hs-identifier hs-var">parenthesizeHsType</span></a></span><span> </span><span class="annot"><span class="annottext">PprPrec
</span><a href="GHC.Types.Basic.html#appPrec"><span class="hs-identifier hs-var">appPrec</span></a></span><span> </span><span class="annot"><span class="annottext">LHsType (GhcPass p)
</span><a href="#local-6989586621680869561"><span class="hs-identifier hs-var">k</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-567"></span><span>
</span><span id="line-568"></span><span class="hs-comment">{-
Tuples.  All these functions are *pre-typechecker* because they lack
types on the tuple.
-}</span><span>
</span><span id="line-572"></span><span>
</span><span id="line-573"></span><span id="local-6989586621680870510"><span class="annot"><a href="GHC.Hs.Utils.html#mkLHsTupleExpr"><span class="hs-identifier hs-type">mkLHsTupleExpr</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870510"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870510"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-574"></span><span class="hs-comment">-- Makes a pre-typechecker boxed tuple, deals with 1 case</span><span>
</span><span id="line-575"></span><span id="mkLHsTupleExpr"><span class="annot"><span class="annottext">mkLHsTupleExpr :: forall (a :: Pass). [LHsExpr (GhcPass a)] -&gt; LHsExpr (GhcPass a)
</span><a href="GHC.Hs.Utils.html#mkLHsTupleExpr"><span class="hs-identifier hs-var hs-var">mkLHsTupleExpr</span></a></span></span><span> </span><span class="hs-special">[</span><span id="local-6989586621680869560"><span class="annot"><span class="annottext">LHsExpr (GhcPass a)
</span><a href="#local-6989586621680869560"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LHsExpr (GhcPass a)
</span><a href="#local-6989586621680869560"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-576"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkLHsTupleExpr"><span class="hs-identifier hs-var">mkLHsTupleExpr</span></a></span><span> </span><span id="local-6989586621680869559"><span class="annot"><span class="annottext">[LHsExpr (GhcPass a)]
</span><a href="#local-6989586621680869559"><span class="hs-identifier hs-var">es</span></a></span></span><span>
</span><span id="line-577"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsExpr (GhcPass a) -&gt; LHsExpr (GhcPass a)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="annot"><span class="annottext">(HsExpr (GhcPass a) -&gt; LHsExpr (GhcPass a))
-&gt; HsExpr (GhcPass a) -&gt; LHsExpr (GhcPass a)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">XExplicitTuple (GhcPass a)
-&gt; [LHsTupArg (GhcPass a)] -&gt; Boxity -&gt; HsExpr (GhcPass a)
forall p. XExplicitTuple p -&gt; [LHsTupArg p] -&gt; Boxity -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#ExplicitTuple"><span class="hs-identifier hs-var">ExplicitTuple</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XExplicitTuple (GhcPass a)
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(LHsExpr (GhcPass a) -&gt; LHsTupArg (GhcPass a))
-&gt; [LHsExpr (GhcPass a)] -&gt; [LHsTupArg (GhcPass a)]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsTupArg (GhcPass a) -&gt; LHsTupArg (GhcPass a)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="annot"><span class="annottext">(HsTupArg (GhcPass a) -&gt; LHsTupArg (GhcPass a))
-&gt; (LHsExpr (GhcPass a) -&gt; HsTupArg (GhcPass a))
-&gt; LHsExpr (GhcPass a)
-&gt; LHsTupArg (GhcPass a)
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XPresent (GhcPass a) -&gt; LHsExpr (GhcPass a) -&gt; HsTupArg (GhcPass a)
forall id. XPresent id -&gt; LHsExpr id -&gt; HsTupArg id
</span><a href="GHC.Hs.Expr.html#Present"><span class="hs-identifier hs-var">Present</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XPresent (GhcPass a)
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[LHsExpr (GhcPass a)]
</span><a href="#local-6989586621680869559"><span class="hs-identifier hs-var">es</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Boxity
</span><a href="GHC.Types.Basic.html#Boxed"><span class="hs-identifier hs-var">Boxed</span></a></span><span>
</span><span id="line-578"></span><span>
</span><span id="line-579"></span><span id="local-6989586621680870502"><span class="annot"><a href="GHC.Hs.Utils.html#mkLHsVarTuple"><span class="hs-identifier hs-type">mkLHsVarTuple</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870502"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870502"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-580"></span><span id="mkLHsVarTuple"><span class="annot"><span class="annottext">mkLHsVarTuple :: forall (a :: Pass). [IdP (GhcPass a)] -&gt; LHsExpr (GhcPass a)
</span><a href="GHC.Hs.Utils.html#mkLHsVarTuple"><span class="hs-identifier hs-var hs-var">mkLHsVarTuple</span></a></span></span><span> </span><span id="local-6989586621680869555"><span class="annot"><span class="annottext">[IdP (GhcPass a)]
</span><a href="#local-6989586621680869555"><span class="hs-identifier hs-var">ids</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[LHsExpr (GhcPass a)] -&gt; LHsExpr (GhcPass a)
forall (a :: Pass). [LHsExpr (GhcPass a)] -&gt; LHsExpr (GhcPass a)
</span><a href="GHC.Hs.Utils.html#mkLHsTupleExpr"><span class="hs-identifier hs-var">mkLHsTupleExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(IdGhcP a -&gt; LHsExpr (GhcPass a))
-&gt; [IdGhcP a] -&gt; [LHsExpr (GhcPass a)]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">IdGhcP a -&gt; LHsExpr (GhcPass a)
forall (id :: Pass). IdP (GhcPass id) -&gt; LHsExpr (GhcPass id)
</span><a href="GHC.Hs.Utils.html#nlHsVar"><span class="hs-identifier hs-var">nlHsVar</span></a></span><span> </span><span class="annot"><span class="annottext">[IdGhcP a]
[IdP (GhcPass a)]
</span><a href="#local-6989586621680869555"><span class="hs-identifier hs-var">ids</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-581"></span><span>
</span><span id="line-582"></span><span class="annot"><a href="GHC.Hs.Utils.html#nlTuplePat"><span class="hs-identifier hs-type">nlTuplePat</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Basic.html#Boxity"><span class="hs-identifier hs-type">Boxity</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-583"></span><span id="nlTuplePat"><span class="annot"><span class="annottext">nlTuplePat :: [LPat GhcPs] -&gt; Boxity -&gt; LPat GhcPs
</span><a href="GHC.Hs.Utils.html#nlTuplePat"><span class="hs-identifier hs-var hs-var">nlTuplePat</span></a></span></span><span> </span><span id="local-6989586621680869554"><span class="annot"><span class="annottext">[LPat GhcPs]
</span><a href="#local-6989586621680869554"><span class="hs-identifier hs-var">pats</span></a></span></span><span> </span><span id="local-6989586621680869553"><span class="annot"><span class="annottext">Boxity
</span><a href="#local-6989586621680869553"><span class="hs-identifier hs-var">box</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Pat GhcPs -&gt; Located (Pat GhcPs)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XTuplePat GhcPs -&gt; [LPat GhcPs] -&gt; Boxity -&gt; Pat GhcPs
forall p. XTuplePat p -&gt; [LPat p] -&gt; Boxity -&gt; Pat p
</span><a href="GHC.Hs.Pat.html#TuplePat"><span class="hs-identifier hs-var">TuplePat</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XTuplePat GhcPs
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">[LPat GhcPs]
</span><a href="#local-6989586621680869554"><span class="hs-identifier hs-var">pats</span></a></span><span> </span><span class="annot"><span class="annottext">Boxity
</span><a href="#local-6989586621680869553"><span class="hs-identifier hs-var">box</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-584"></span><span>
</span><span id="line-585"></span><span class="annot"><a href="GHC.Hs.Utils.html#missingTupArg"><span class="hs-identifier hs-type">missingTupArg</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsTupArg"><span class="hs-identifier hs-type">HsTupArg</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-586"></span><span id="missingTupArg"><span class="annot"><span class="annottext">missingTupArg :: HsTupArg GhcPs
</span><a href="GHC.Hs.Utils.html#missingTupArg"><span class="hs-identifier hs-var hs-var">missingTupArg</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XMissing GhcPs -&gt; HsTupArg GhcPs
forall id. XMissing id -&gt; HsTupArg id
</span><a href="GHC.Hs.Expr.html#Missing"><span class="hs-identifier hs-var">Missing</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XMissing GhcPs
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span>
</span><span id="line-587"></span><span>
</span><span id="line-588"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkLHsPatTup"><span class="hs-identifier hs-type">mkLHsPatTup</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span>
</span><span id="line-589"></span><span id="mkLHsPatTup"><span class="annot"><span class="annottext">mkLHsPatTup :: [LPat GhcRn] -&gt; LPat GhcRn
</span><a href="GHC.Hs.Utils.html#mkLHsPatTup"><span class="hs-identifier hs-var hs-var">mkLHsPatTup</span></a></span></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Pat GhcRn -&gt; Located (Pat GhcRn)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Pat GhcRn -&gt; Located (Pat GhcRn))
-&gt; Pat GhcRn -&gt; Located (Pat GhcRn)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">XTuplePat GhcRn -&gt; [LPat GhcRn] -&gt; Boxity -&gt; Pat GhcRn
forall p. XTuplePat p -&gt; [LPat p] -&gt; Boxity -&gt; Pat p
</span><a href="GHC.Hs.Pat.html#TuplePat"><span class="hs-identifier hs-var">TuplePat</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XTuplePat GhcRn
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="annot"><span class="annottext">Boxity
</span><a href="GHC.Types.Basic.html#Boxed"><span class="hs-identifier hs-var">Boxed</span></a></span><span>
</span><span id="line-590"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkLHsPatTup"><span class="hs-identifier hs-var">mkLHsPatTup</span></a></span><span> </span><span class="hs-special">[</span><span id="local-6989586621680869549"><span class="annot"><span class="annottext">LPat GhcRn
</span><a href="#local-6989586621680869549"><span class="hs-identifier hs-var">lpat</span></a></span></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LPat GhcRn
</span><a href="#local-6989586621680869549"><span class="hs-identifier hs-var">lpat</span></a></span><span>
</span><span id="line-591"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkLHsPatTup"><span class="hs-identifier hs-var">mkLHsPatTup</span></a></span><span> </span><span id="local-6989586621680869548"><span class="annot"><span class="annottext">[LPat GhcRn]
</span><a href="#local-6989586621680869548"><span class="hs-identifier hs-var">lpats</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; Pat GhcRn -&gt; Located (Pat GhcRn)
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Located (Pat GhcRn) -&gt; SrcSpan
forall l e. GenLocated l e -&gt; l
</span><a href="GHC.Types.SrcLoc.html#getLoc"><span class="hs-identifier hs-var">getLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Located (Pat GhcRn)] -&gt; Located (Pat GhcRn)
forall a. [a] -&gt; a
</span><a href="../../base/src/GHC.List.html#head"><span class="hs-identifier hs-var">head</span></a></span><span> </span><span class="annot"><span class="annottext">[Located (Pat GhcRn)]
[LPat GhcRn]
</span><a href="#local-6989586621680869548"><span class="hs-identifier hs-var">lpats</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Pat GhcRn -&gt; Located (Pat GhcRn))
-&gt; Pat GhcRn -&gt; Located (Pat GhcRn)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">XTuplePat GhcRn -&gt; [LPat GhcRn] -&gt; Boxity -&gt; Pat GhcRn
forall p. XTuplePat p -&gt; [LPat p] -&gt; Boxity -&gt; Pat p
</span><a href="GHC.Hs.Pat.html#TuplePat"><span class="hs-identifier hs-var">TuplePat</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XTuplePat GhcRn
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">[LPat GhcRn]
</span><a href="#local-6989586621680869548"><span class="hs-identifier hs-var">lpats</span></a></span><span> </span><span class="annot"><span class="annottext">Boxity
</span><a href="GHC.Types.Basic.html#Boxed"><span class="hs-identifier hs-var">Boxed</span></a></span><span>
</span><span id="line-592"></span><span>
</span><span id="line-593"></span><span class="hs-comment">-- | The Big equivalents for the source tuple expressions</span><span>
</span><span id="line-594"></span><span id="local-6989586621680869547"><span class="annot"><a href="GHC.Hs.Utils.html#mkBigLHsVarTup"><span class="hs-identifier hs-type">mkBigLHsVarTup</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680869547"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680869547"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-595"></span><span id="mkBigLHsVarTup"><span class="annot"><span class="annottext">mkBigLHsVarTup :: forall (a :: Pass). [IdP (GhcPass a)] -&gt; LHsExpr (GhcPass a)
</span><a href="GHC.Hs.Utils.html#mkBigLHsVarTup"><span class="hs-identifier hs-var hs-var">mkBigLHsVarTup</span></a></span></span><span> </span><span id="local-6989586621680869546"><span class="annot"><span class="annottext">[IdP (GhcPass id)]
</span><a href="#local-6989586621680869546"><span class="hs-identifier hs-var">ids</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[LHsExpr (GhcPass id)] -&gt; LHsExpr (GhcPass id)
forall (a :: Pass). [LHsExpr (GhcPass a)] -&gt; LHsExpr (GhcPass a)
</span><a href="GHC.Hs.Utils.html#mkBigLHsTup"><span class="hs-identifier hs-var">mkBigLHsTup</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(IdGhcP id -&gt; LHsExpr (GhcPass id))
-&gt; [IdGhcP id] -&gt; [LHsExpr (GhcPass id)]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">IdGhcP id -&gt; LHsExpr (GhcPass id)
forall (id :: Pass). IdP (GhcPass id) -&gt; LHsExpr (GhcPass id)
</span><a href="GHC.Hs.Utils.html#nlHsVar"><span class="hs-identifier hs-var">nlHsVar</span></a></span><span> </span><span class="annot"><span class="annottext">[IdGhcP id]
[IdP (GhcPass id)]
</span><a href="#local-6989586621680869546"><span class="hs-identifier hs-var">ids</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-596"></span><span>
</span><span id="line-597"></span><span id="local-6989586621680869545"><span class="annot"><a href="GHC.Hs.Utils.html#mkBigLHsTup"><span class="hs-identifier hs-type">mkBigLHsTup</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680869545"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680869545"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-598"></span><span id="mkBigLHsTup"><span class="annot"><span class="annottext">mkBigLHsTup :: forall (a :: Pass). [LHsExpr (GhcPass a)] -&gt; LHsExpr (GhcPass a)
</span><a href="GHC.Hs.Utils.html#mkBigLHsTup"><span class="hs-identifier hs-var hs-var">mkBigLHsTup</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">([LHsExpr (GhcPass id)] -&gt; LHsExpr (GhcPass id))
-&gt; [LHsExpr (GhcPass id)] -&gt; LHsExpr (GhcPass id)
forall a. ([a] -&gt; a) -&gt; [a] -&gt; a
</span><a href="GHC.Hs.Utils.html#mkChunkified"><span class="hs-identifier hs-var">mkChunkified</span></a></span><span> </span><span class="annot"><span class="annottext">[LHsExpr (GhcPass id)] -&gt; LHsExpr (GhcPass id)
forall (a :: Pass). [LHsExpr (GhcPass a)] -&gt; LHsExpr (GhcPass a)
</span><a href="GHC.Hs.Utils.html#mkLHsTupleExpr"><span class="hs-identifier hs-var">mkLHsTupleExpr</span></a></span><span>
</span><span id="line-599"></span><span>
</span><span id="line-600"></span><span class="hs-comment">-- | The Big equivalents for the source tuple patterns</span><span>
</span><span id="line-601"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkBigLHsVarPatTup"><span class="hs-identifier hs-type">mkBigLHsVarPatTup</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span>
</span><span id="line-602"></span><span id="mkBigLHsVarPatTup"><span class="annot"><span class="annottext">mkBigLHsVarPatTup :: [IdP GhcRn] -&gt; LPat GhcRn
</span><a href="GHC.Hs.Utils.html#mkBigLHsVarPatTup"><span class="hs-identifier hs-var hs-var">mkBigLHsVarPatTup</span></a></span></span><span> </span><span id="local-6989586621680869544"><span class="annot"><span class="annottext">[IdP GhcRn]
</span><a href="#local-6989586621680869544"><span class="hs-identifier hs-var">bs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[LPat GhcRn] -&gt; LPat GhcRn
</span><a href="GHC.Hs.Utils.html#mkBigLHsPatTup"><span class="hs-identifier hs-var">mkBigLHsPatTup</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Name -&gt; Located (Pat GhcRn)) -&gt; [Name] -&gt; [Located (Pat GhcRn)]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; Located (Pat GhcRn)
forall (id :: Pass). IdP (GhcPass id) -&gt; LPat (GhcPass id)
</span><a href="GHC.Hs.Utils.html#nlVarPat"><span class="hs-identifier hs-var">nlVarPat</span></a></span><span> </span><span class="annot"><span class="annottext">[Name]
[IdP GhcRn]
</span><a href="#local-6989586621680869544"><span class="hs-identifier hs-var">bs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-603"></span><span>
</span><span id="line-604"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkBigLHsPatTup"><span class="hs-identifier hs-type">mkBigLHsPatTup</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span>
</span><span id="line-605"></span><span id="mkBigLHsPatTup"><span class="annot"><span class="annottext">mkBigLHsPatTup :: [LPat GhcRn] -&gt; LPat GhcRn
</span><a href="GHC.Hs.Utils.html#mkBigLHsPatTup"><span class="hs-identifier hs-var hs-var">mkBigLHsPatTup</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">([Located (Pat GhcRn)] -&gt; Located (Pat GhcRn))
-&gt; [Located (Pat GhcRn)] -&gt; Located (Pat GhcRn)
forall a. ([a] -&gt; a) -&gt; [a] -&gt; a
</span><a href="GHC.Hs.Utils.html#mkChunkified"><span class="hs-identifier hs-var">mkChunkified</span></a></span><span> </span><span class="annot"><span class="annottext">[Located (Pat GhcRn)] -&gt; Located (Pat GhcRn)
[LPat GhcRn] -&gt; LPat GhcRn
</span><a href="GHC.Hs.Utils.html#mkLHsPatTup"><span class="hs-identifier hs-var">mkLHsPatTup</span></a></span><span>
</span><span id="line-606"></span><span>
</span><span id="line-607"></span><span class="hs-comment">-- $big_tuples</span><span>
</span><span id="line-608"></span><span class="hs-comment">-- #big_tuples#</span><span>
</span><span id="line-609"></span><span class="hs-comment">--</span><span>
</span><span id="line-610"></span><span class="hs-comment">-- GHCs built in tuples can only go up to 'mAX_TUPLE_SIZE' in arity, but</span><span>
</span><span id="line-611"></span><span class="hs-comment">-- we might conceivably want to build such a massive tuple as part of the</span><span>
</span><span id="line-612"></span><span class="hs-comment">-- output of a desugaring stage (notably that for list comprehensions).</span><span>
</span><span id="line-613"></span><span class="hs-comment">--</span><span>
</span><span id="line-614"></span><span class="hs-comment">-- We call tuples above this size \&quot;big tuples\&quot;, and emulate them by</span><span>
</span><span id="line-615"></span><span class="hs-comment">-- creating and pattern matching on &gt;nested&lt; tuples that are expressible</span><span>
</span><span id="line-616"></span><span class="hs-comment">-- by GHC.</span><span>
</span><span id="line-617"></span><span class="hs-comment">--</span><span>
</span><span id="line-618"></span><span class="hs-comment">-- Nesting policy: it's better to have a 2-tuple of 10-tuples (3 objects)</span><span>
</span><span id="line-619"></span><span class="hs-comment">-- than a 10-tuple of 2-tuples (11 objects), so we want the leaves of any</span><span>
</span><span id="line-620"></span><span class="hs-comment">-- construction to be big.</span><span>
</span><span id="line-621"></span><span class="hs-comment">--</span><span>
</span><span id="line-622"></span><span class="hs-comment">-- If you just use the 'mkBigCoreTup', 'mkBigCoreVarTupTy', 'mkTupleSelector'</span><span>
</span><span id="line-623"></span><span class="hs-comment">-- and 'mkTupleCase' functions to do all your work with tuples you should be</span><span>
</span><span id="line-624"></span><span class="hs-comment">-- fine, and not have to worry about the arity limitation at all.</span><span>
</span><span id="line-625"></span><span>
</span><span id="line-626"></span><span class="hs-comment">-- | Lifts a \&quot;small\&quot; constructor into a \&quot;big\&quot; constructor by recursive decomposition</span><span>
</span><span id="line-627"></span><span id="local-6989586621680870496"><span class="annot"><a href="GHC.Hs.Utils.html#mkChunkified"><span class="hs-identifier hs-type">mkChunkified</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621680870496"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680870496"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span>      </span><span class="hs-comment">-- ^ \&quot;Small\&quot; constructor function, of maximum input arity 'mAX_TUPLE_SIZE'</span><span>
</span><span id="line-628"></span><span>             </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621680870496"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span>             </span><span class="hs-comment">-- ^ Possible \&quot;big\&quot; list of things to construct from</span><span>
</span><span id="line-629"></span><span>             </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680870496"><span class="hs-identifier hs-type">a</span></a></span></span><span>               </span><span class="hs-comment">-- ^ Constructed thing made possible by recursive decomposition</span><span>
</span><span id="line-630"></span><span id="mkChunkified"><span class="annot"><span class="annottext">mkChunkified :: forall a. ([a] -&gt; a) -&gt; [a] -&gt; a
</span><a href="GHC.Hs.Utils.html#mkChunkified"><span class="hs-identifier hs-var hs-var">mkChunkified</span></a></span></span><span> </span><span id="local-6989586621680869543"><span class="annot"><span class="annottext">[a] -&gt; a
</span><a href="#local-6989586621680869543"><span class="hs-identifier hs-var">small_tuple</span></a></span></span><span> </span><span id="local-6989586621680869542"><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621680869542"><span class="hs-keyword hs-var">as</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[[a]] -&gt; a
</span><a href="#local-6989586621680869541"><span class="hs-identifier hs-var">mk_big_tuple</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[a] -&gt; [[a]]
forall a. [a] -&gt; [[a]]
</span><a href="GHC.Hs.Utils.html#chunkify"><span class="hs-identifier hs-var">chunkify</span></a></span><span> </span><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621680869542"><span class="hs-keyword hs-var">as</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-631"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-632"></span><span>        </span><span class="hs-comment">-- Each sub-list is short enough to fit in a tuple</span><span>
</span><span id="line-633"></span><span>    </span><span id="local-6989586621680869541"><span class="annot"><span class="annottext">mk_big_tuple :: [[a]] -&gt; a
</span><a href="#local-6989586621680869541"><span class="hs-identifier hs-var hs-var">mk_big_tuple</span></a></span></span><span> </span><span class="hs-special">[</span><span id="local-6989586621680869540"><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621680869540"><span class="hs-keyword hs-var">as</span></a></span></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[a] -&gt; a
</span><a href="#local-6989586621680869543"><span class="hs-identifier hs-var">small_tuple</span></a></span><span> </span><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621680869540"><span class="hs-keyword hs-var">as</span></a></span><span>
</span><span id="line-634"></span><span>    </span><span class="annot"><a href="#local-6989586621680869541"><span class="hs-identifier hs-var">mk_big_tuple</span></a></span><span> </span><span id="local-6989586621680869539"><span class="annot"><span class="annottext">[[a]]
</span><a href="#local-6989586621680869539"><span class="hs-identifier hs-var">as_s</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[[a]] -&gt; a
</span><a href="#local-6989586621680869541"><span class="hs-identifier hs-var">mk_big_tuple</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[a] -&gt; [[a]]
forall a. [a] -&gt; [[a]]
</span><a href="GHC.Hs.Utils.html#chunkify"><span class="hs-identifier hs-var">chunkify</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">([a] -&gt; a) -&gt; [[a]] -&gt; [a]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">[a] -&gt; a
</span><a href="#local-6989586621680869543"><span class="hs-identifier hs-var">small_tuple</span></a></span><span> </span><span class="annot"><span class="annottext">[[a]]
</span><a href="#local-6989586621680869539"><span class="hs-identifier hs-var">as_s</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-635"></span><span>
</span><span id="line-636"></span><span id="local-6989586621680870494"><span class="annot"><a href="GHC.Hs.Utils.html#chunkify"><span class="hs-identifier hs-type">chunkify</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621680870494"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621680870494"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span class="hs-special">]</span></span><span>
</span><span id="line-637"></span><span class="hs-comment">-- ^ Split a list into lists that are small enough to have a corresponding</span><span>
</span><span id="line-638"></span><span class="hs-comment">-- tuple arity. The sub-lists of the result all have length &lt;= 'mAX_TUPLE_SIZE'</span><span>
</span><span id="line-639"></span><span class="hs-comment">-- But there may be more than 'mAX_TUPLE_SIZE' sub-lists</span><span>
</span><span id="line-640"></span><span id="chunkify"><span class="annot"><span class="annottext">chunkify :: forall a. [a] -&gt; [[a]]
</span><a href="GHC.Hs.Utils.html#chunkify"><span class="hs-identifier hs-var hs-var">chunkify</span></a></span></span><span> </span><span id="local-6989586621680869536"><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621680869536"><span class="hs-identifier hs-var">xs</span></a></span></span><span>
</span><span id="line-641"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680869535"><span class="hs-identifier hs-var">n_xs</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&lt;=</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="GHC.Settings.Constants.html#mAX_TUPLE_SIZE"><span class="hs-identifier hs-var">mAX_TUPLE_SIZE</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621680869536"><span class="hs-identifier hs-var">xs</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-642"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>              </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[a] -&gt; [[a]]
forall a. [a] -&gt; [[a]]
</span><a href="#local-6989586621680869532"><span class="hs-identifier hs-var">split</span></a></span><span> </span><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621680869536"><span class="hs-identifier hs-var">xs</span></a></span><span>
</span><span id="line-643"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-644"></span><span>    </span><span id="local-6989586621680869535"><span class="annot"><span class="annottext">n_xs :: Int
</span><a href="#local-6989586621680869535"><span class="hs-identifier hs-var hs-var">n_xs</span></a></span></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[a] -&gt; Int
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Int
</span><a href="../../base/src/Data.Foldable.html#length"><span class="hs-identifier hs-var">length</span></a></span><span> </span><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621680869536"><span class="hs-identifier hs-var">xs</span></a></span><span>
</span><span id="line-645"></span><span>    </span><span id="local-6989586621680869532"><span class="annot"><span class="annottext">split :: [a] -&gt; [[a]]
</span><a href="#local-6989586621680869532"><span class="hs-identifier hs-var hs-var">split</span></a></span></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-646"></span><span>    </span><span class="annot"><a href="#local-6989586621680869532"><span class="hs-identifier hs-var">split</span></a></span><span> </span><span id="local-6989586621680869530"><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621680869530"><span class="hs-identifier hs-var">xs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; [a] -&gt; [a]
forall a. Int -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.List.html#take"><span class="hs-identifier hs-var">take</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="GHC.Settings.Constants.html#mAX_TUPLE_SIZE"><span class="hs-identifier hs-var">mAX_TUPLE_SIZE</span></a></span><span> </span><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621680869530"><span class="hs-identifier hs-var">xs</span></a></span><span> </span><span class="annot"><span class="annottext">[a] -&gt; [[a]] -&gt; [[a]]
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span> </span><span class="annot"><span class="annottext">[a] -&gt; [[a]]
</span><a href="#local-6989586621680869532"><span class="hs-identifier hs-var">split</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; [a] -&gt; [a]
forall a. Int -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.List.html#drop"><span class="hs-identifier hs-var">drop</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="GHC.Settings.Constants.html#mAX_TUPLE_SIZE"><span class="hs-identifier hs-var">mAX_TUPLE_SIZE</span></a></span><span> </span><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621680869530"><span class="hs-identifier hs-var">xs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-647"></span><span>
</span><span id="line-648"></span><span class="hs-comment">{-
************************************************************************
*                                                                      *
        LHsSigType and LHsSigWcType
*                                                                      *
********************************************************************* -}</span><span>
</span><span id="line-654"></span><span>
</span><span id="line-655"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkLHsSigType"><span class="hs-identifier hs-type">mkLHsSigType</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Type.html#LHsType"><span class="hs-identifier hs-type">LHsType</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Type.html#LHsSigType"><span class="hs-identifier hs-type">LHsSigType</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-656"></span><span id="mkLHsSigType"><span class="annot"><span class="annottext">mkLHsSigType :: LHsType GhcPs -&gt; LHsSigType GhcPs
</span><a href="GHC.Hs.Utils.html#mkLHsSigType"><span class="hs-identifier hs-var hs-var">mkLHsSigType</span></a></span></span><span> </span><span id="local-6989586621680869527"><span class="annot"><span class="annottext">LHsType GhcPs
</span><a href="#local-6989586621680869527"><span class="hs-identifier hs-var">ty</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LHsType GhcPs -&gt; LHsSigType GhcPs
forall thing. thing -&gt; HsImplicitBndrs GhcPs thing
</span><a href="GHC.Hs.Type.html#mkHsImplicitBndrs"><span class="hs-identifier hs-var">mkHsImplicitBndrs</span></a></span><span> </span><span class="annot"><span class="annottext">LHsType GhcPs
</span><a href="#local-6989586621680869527"><span class="hs-identifier hs-var">ty</span></a></span><span>
</span><span id="line-657"></span><span>
</span><span id="line-658"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkLHsSigWcType"><span class="hs-identifier hs-type">mkLHsSigWcType</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Type.html#LHsType"><span class="hs-identifier hs-type">LHsType</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Type.html#LHsSigWcType"><span class="hs-identifier hs-type">LHsSigWcType</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-659"></span><span id="mkLHsSigWcType"><span class="annot"><span class="annottext">mkLHsSigWcType :: LHsType GhcPs -&gt; LHsSigWcType GhcPs
</span><a href="GHC.Hs.Utils.html#mkLHsSigWcType"><span class="hs-identifier hs-var hs-var">mkLHsSigWcType</span></a></span></span><span> </span><span id="local-6989586621680869525"><span class="annot"><span class="annottext">LHsType GhcPs
</span><a href="#local-6989586621680869525"><span class="hs-identifier hs-var">ty</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LHsSigType GhcPs -&gt; LHsSigWcType GhcPs
forall thing. thing -&gt; HsWildCardBndrs GhcPs thing
</span><a href="GHC.Hs.Type.html#mkHsWildCardBndrs"><span class="hs-identifier hs-var">mkHsWildCardBndrs</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsType GhcPs -&gt; LHsSigType GhcPs
forall thing. thing -&gt; HsImplicitBndrs GhcPs thing
</span><a href="GHC.Hs.Type.html#mkHsImplicitBndrs"><span class="hs-identifier hs-var">mkHsImplicitBndrs</span></a></span><span> </span><span class="annot"><span class="annottext">LHsType GhcPs
</span><a href="#local-6989586621680869525"><span class="hs-identifier hs-var">ty</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-660"></span><span>
</span><span id="line-661"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsSigEnv"><span class="hs-identifier hs-type">mkHsSigEnv</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-keyword">forall</span><span> </span><span id="local-6989586621680870482"><span class="annot"><a href="#local-6989586621680870482"><span class="hs-identifier hs-type">a</span></a></span></span><span class="hs-operator">.</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#LSig"><span class="hs-identifier hs-type">LSig</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="annot"><a href="GHC.Types.Name.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span class="hs-special">]</span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621680870482"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-662"></span><span>                     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Binds.html#LSig"><span class="hs-identifier hs-type">LSig</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-663"></span><span>                     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Name.Env.html#NameEnv"><span class="hs-identifier hs-type">NameEnv</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870482"><span class="hs-identifier hs-type">a</span></a></span><span>
</span><span id="line-664"></span><span id="mkHsSigEnv"><span class="annot"><span class="annottext">mkHsSigEnv :: forall a.
(LSig GhcRn -&gt; Maybe ([Located Name], a))
-&gt; [LSig GhcRn] -&gt; NameEnv a
</span><a href="GHC.Hs.Utils.html#mkHsSigEnv"><span class="hs-identifier hs-var hs-var">mkHsSigEnv</span></a></span></span><span> </span><span id="local-6989586621680869523"><span class="annot"><span class="annottext">LSig GhcRn -&gt; Maybe ([Located Name], a)
</span><a href="#local-6989586621680869523"><span class="hs-identifier hs-var">get_info</span></a></span></span><span> </span><span id="local-6989586621680869522"><span class="annot"><span class="annottext">[LSig GhcRn]
</span><a href="#local-6989586621680869522"><span class="hs-identifier hs-var">sigs</span></a></span></span><span>
</span><span id="line-665"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[(Name, a)] -&gt; NameEnv a
forall a. [(Name, a)] -&gt; NameEnv a
</span><a href="GHC.Types.Name.Env.html#mkNameEnv"><span class="hs-identifier hs-var">mkNameEnv</span></a></span><span>          </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[LSig GhcRn] -&gt; [(Name, a)]
</span><a href="#local-6989586621680869520"><span class="hs-identifier hs-var">mk_pairs</span></a></span><span> </span><span class="annot"><span class="annottext">[LSig GhcRn]
</span><a href="#local-6989586621680869519"><span class="hs-identifier hs-var">ordinary_sigs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-666"></span><span>   </span><span class="annot"><span class="annottext">NameEnv a -&gt; [(Name, a)] -&gt; NameEnv a
forall a. NameEnv a -&gt; [(Name, a)] -&gt; NameEnv a
</span><a href="GHC.Types.Name.Env.html#extendNameEnvList"><span class="hs-operator hs-var">`extendNameEnvList`</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[LSig GhcRn] -&gt; [(Name, a)]
</span><a href="#local-6989586621680869520"><span class="hs-identifier hs-var">mk_pairs</span></a></span><span> </span><span class="annot"><span class="annottext">[LSig GhcRn]
</span><a href="#local-6989586621680869517"><span class="hs-identifier hs-var">gen_dm_sigs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-667"></span><span>   </span><span class="hs-comment">-- The subtlety is this: in a class decl with a</span><span>
</span><span id="line-668"></span><span>   </span><span class="hs-comment">-- default-method signature as well as a method signature</span><span>
</span><span id="line-669"></span><span>   </span><span class="hs-comment">-- we want the latter to win (#12533)</span><span>
</span><span id="line-670"></span><span>   </span><span class="hs-comment">--    class C x where</span><span>
</span><span id="line-671"></span><span>   </span><span class="hs-comment">--       op :: forall a . x a -&gt; x a</span><span>
</span><span id="line-672"></span><span>   </span><span class="hs-comment">--       default op :: forall b . x b -&gt; x b</span><span>
</span><span id="line-673"></span><span>   </span><span class="hs-comment">--       op x = ...(e :: b -&gt; b)...</span><span>
</span><span id="line-674"></span><span>   </span><span class="hs-comment">-- The scoped type variables of the 'default op', namely 'b',</span><span>
</span><span id="line-675"></span><span>   </span><span class="hs-comment">-- scope over the code for op.   The 'forall a' does not!</span><span>
</span><span id="line-676"></span><span>   </span><span class="hs-comment">-- This applies both in the renamer and typechecker, both</span><span>
</span><span id="line-677"></span><span>   </span><span class="hs-comment">-- of which use this function</span><span>
</span><span id="line-678"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-679"></span><span>    </span><span class="hs-special">(</span><span id="local-6989586621680869517"><span class="annot"><span class="annottext">[LSig GhcRn]
</span><a href="#local-6989586621680869517"><span class="hs-identifier hs-var">gen_dm_sigs</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680869519"><span class="annot"><span class="annottext">[LSig GhcRn]
</span><a href="#local-6989586621680869519"><span class="hs-identifier hs-var">ordinary_sigs</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(LSig GhcRn -&gt; Bool)
-&gt; [LSig GhcRn] -&gt; ([LSig GhcRn], [LSig GhcRn])
forall a. (a -&gt; Bool) -&gt; [a] -&gt; ([a], [a])
</span><a href="../../base/src/Data.OldList.html#partition"><span class="hs-identifier hs-var">partition</span></a></span><span> </span><span class="annot"><span class="annottext">LSig GhcRn -&gt; Bool
forall {l} {pass}. GenLocated l (Sig pass) -&gt; Bool
</span><a href="#local-6989586621680869515"><span class="hs-identifier hs-var">is_gen_dm_sig</span></a></span><span> </span><span class="annot"><span class="annottext">[LSig GhcRn]
</span><a href="#local-6989586621680869522"><span class="hs-identifier hs-var">sigs</span></a></span><span>
</span><span id="line-680"></span><span>    </span><span id="local-6989586621680869515"><span class="annot"><span class="annottext">is_gen_dm_sig :: GenLocated l (Sig pass) -&gt; Bool
</span><a href="#local-6989586621680869515"><span class="hs-identifier hs-var hs-var">is_gen_dm_sig</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span class="annot"><span class="annottext">l
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#ClassOpSig"><span class="hs-identifier hs-type">ClassOpSig</span></a></span><span> </span><span class="annot"><span class="annottext">XClassOpSig pass
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span> </span><span class="annot"><span class="annottext">[Located (IdP pass)]
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">LHsSigType pass
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>
</span><span id="line-681"></span><span>    </span><span class="annot"><a href="#local-6989586621680869515"><span class="hs-identifier hs-var">is_gen_dm_sig</span></a></span><span> </span><span class="annot"><span class="annottext">GenLocated l (Sig pass)
</span><span class="hs-identifier">_</span></span><span>                             </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span>
</span><span id="line-682"></span><span>
</span><span id="line-683"></span><span>    </span><span class="annot"><a href="#local-6989586621680869520"><span class="hs-identifier hs-type">mk_pairs</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Binds.html#LSig"><span class="hs-identifier hs-type">LSig</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Name.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621680870482"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-684"></span><span>    </span><span id="local-6989586621680869520"><span class="annot"><span class="annottext">mk_pairs :: [LSig GhcRn] -&gt; [(Name, a)]
</span><a href="#local-6989586621680869520"><span class="hs-identifier hs-var hs-var">mk_pairs</span></a></span></span><span> </span><span id="local-6989586621680869513"><span class="annot"><span class="annottext">[LSig GhcRn]
</span><a href="#local-6989586621680869513"><span class="hs-identifier hs-var">sigs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621680869512"><span class="hs-identifier hs-var">n</span></a></span><span class="hs-special">,</span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680869511"><span class="hs-identifier hs-var">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span class="hs-special">(</span><span id="local-6989586621680869510"><span class="annot"><span class="annottext">[Located Name]
</span><a href="#local-6989586621680869510"><span class="hs-identifier hs-var">ns</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621680869511"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680869511"><span class="hs-identifier hs-var">a</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(LSig GhcRn -&gt; Maybe ([Located Name], a))
-&gt; [LSig GhcRn] -&gt; [Maybe ([Located Name], a)]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">LSig GhcRn -&gt; Maybe ([Located Name], a)
</span><a href="#local-6989586621680869523"><span class="hs-identifier hs-var">get_info</span></a></span><span> </span><span class="annot"><span class="annottext">[LSig GhcRn]
</span><a href="#local-6989586621680869513"><span class="hs-identifier hs-var">sigs</span></a></span><span>
</span><span id="line-685"></span><span>                            </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869512"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621680869512"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[Located Name]
</span><a href="#local-6989586621680869510"><span class="hs-identifier hs-var">ns</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-686"></span><span>
</span><span id="line-687"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkClassOpSigs"><span class="hs-identifier hs-type">mkClassOpSigs</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Binds.html#LSig"><span class="hs-identifier hs-type">LSig</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Binds.html#LSig"><span class="hs-identifier hs-type">LSig</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-688"></span><span class="hs-comment">-- ^ Convert 'TypeSig' to 'ClassOpSig'.</span><span>
</span><span id="line-689"></span><span class="hs-comment">-- The former is what is parsed, but the latter is</span><span>
</span><span id="line-690"></span><span class="hs-comment">-- what we need in class/instance declarations</span><span>
</span><span id="line-691"></span><span id="mkClassOpSigs"><span class="annot"><span class="annottext">mkClassOpSigs :: [LSig GhcPs] -&gt; [LSig GhcPs]
</span><a href="GHC.Hs.Utils.html#mkClassOpSigs"><span class="hs-identifier hs-var hs-var">mkClassOpSigs</span></a></span></span><span> </span><span id="local-6989586621680869509"><span class="annot"><span class="annottext">[LSig GhcPs]
</span><a href="#local-6989586621680869509"><span class="hs-identifier hs-var">sigs</span></a></span></span><span>
</span><span id="line-692"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(LSig GhcPs -&gt; LSig GhcPs) -&gt; [LSig GhcPs] -&gt; [LSig GhcPs]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">LSig GhcPs -&gt; LSig GhcPs
forall {pass} {l}.
(XClassOpSig pass ~ NoExtField) =&gt;
GenLocated l (Sig pass) -&gt; GenLocated l (Sig pass)
</span><a href="#local-6989586621680869508"><span class="hs-identifier hs-var">fiddle</span></a></span><span> </span><span class="annot"><span class="annottext">[LSig GhcPs]
</span><a href="#local-6989586621680869509"><span class="hs-identifier hs-var">sigs</span></a></span><span>
</span><span id="line-693"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-694"></span><span>    </span><span id="local-6989586621680869508"><span class="annot"><span class="annottext">fiddle :: GenLocated l (Sig pass) -&gt; GenLocated l (Sig pass)
</span><a href="#local-6989586621680869508"><span class="hs-identifier hs-var hs-var">fiddle</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621680869503"><span class="annot"><span class="annottext">l
</span><a href="#local-6989586621680869503"><span class="hs-identifier hs-var">loc</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#TypeSig"><span class="hs-identifier hs-type">TypeSig</span></a></span><span> </span><span class="annot"><span class="annottext">XTypeSig pass
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869501"><span class="annot"><span class="annottext">[Located (IdP pass)]
</span><a href="#local-6989586621680869501"><span class="hs-identifier hs-var">nms</span></a></span></span><span> </span><span id="local-6989586621680869500"><span class="annot"><span class="annottext">LHsSigWcType pass
</span><a href="#local-6989586621680869500"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-695"></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">l -&gt; Sig pass -&gt; GenLocated l (Sig pass)
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">l
</span><a href="#local-6989586621680869503"><span class="hs-identifier hs-var">loc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XClassOpSig pass
-&gt; Bool -&gt; [Located (IdP pass)] -&gt; LHsSigType pass -&gt; Sig pass
forall pass.
XClassOpSig pass
-&gt; Bool -&gt; [Located (IdP pass)] -&gt; LHsSigType pass -&gt; Sig pass
</span><a href="GHC.Hs.Binds.html#ClassOpSig"><span class="hs-identifier hs-var">ClassOpSig</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XClassOpSig pass
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="annot"><span class="annottext">[Located (IdP pass)]
</span><a href="#local-6989586621680869501"><span class="hs-identifier hs-var">nms</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsSigWcType pass -&gt; LHsSigType pass
forall pass. LHsSigWcType pass -&gt; LHsSigType pass
</span><a href="GHC.Hs.Type.html#dropWildCards"><span class="hs-identifier hs-var">dropWildCards</span></a></span><span> </span><span class="annot"><span class="annottext">LHsSigWcType pass
</span><a href="#local-6989586621680869500"><span class="hs-identifier hs-var">ty</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-696"></span><span>    </span><span class="annot"><a href="#local-6989586621680869508"><span class="hs-identifier hs-var">fiddle</span></a></span><span> </span><span id="local-6989586621680869498"><span class="annot"><span class="annottext">GenLocated l (Sig pass)
</span><a href="#local-6989586621680869498"><span class="hs-identifier hs-var">sig</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">GenLocated l (Sig pass)
</span><a href="#local-6989586621680869498"><span class="hs-identifier hs-var">sig</span></a></span><span>
</span><span id="line-697"></span><span>
</span><span id="line-698"></span><span class="hs-comment">{- *********************************************************************
*                                                                      *
    --------- HsWrappers: type args, dict args, casts ---------
*                                                                      *
********************************************************************* -}</span><span>
</span><span id="line-703"></span><span>
</span><span id="line-704"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkLHsWrap"><span class="hs-identifier hs-type">mkLHsWrap</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Tc.Types.Evidence.html#HsWrapper"><span class="hs-identifier hs-type">HsWrapper</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span>
</span><span id="line-705"></span><span id="mkLHsWrap"><span class="annot"><span class="annottext">mkLHsWrap :: HsWrapper -&gt; LHsExpr GhcTc -&gt; LHsExpr GhcTc
</span><a href="GHC.Hs.Utils.html#mkLHsWrap"><span class="hs-identifier hs-var hs-var">mkLHsWrap</span></a></span></span><span> </span><span id="local-6989586621680869497"><span class="annot"><span class="annottext">HsWrapper
</span><a href="#local-6989586621680869497"><span class="hs-identifier hs-var">co_fn</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621680869496"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869496"><span class="hs-identifier hs-var">loc</span></a></span></span><span> </span><span id="local-6989586621680869495"><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621680869495"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; HsExpr GhcTc -&gt; LHsExpr GhcTc
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869496"><span class="hs-identifier hs-var">loc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsWrapper -&gt; HsExpr GhcTc -&gt; HsExpr GhcTc
</span><a href="GHC.Hs.Utils.html#mkHsWrap"><span class="hs-identifier hs-var">mkHsWrap</span></a></span><span> </span><span class="annot"><span class="annottext">HsWrapper
</span><a href="#local-6989586621680869497"><span class="hs-identifier hs-var">co_fn</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621680869495"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-706"></span><span>
</span><span id="line-707"></span><span class="hs-comment">-- | Avoid @'HsWrap' co1 ('HsWrap' co2 _)@ and @'HsWrap' co1 ('HsPar' _ _)@</span><span>
</span><span id="line-708"></span><span class="hs-comment">-- See Note [Detecting forced eta expansion] in &quot;GHC.HsToCore.Expr&quot;</span><span>
</span><span id="line-709"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsWrap"><span class="hs-identifier hs-type">mkHsWrap</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Tc.Types.Evidence.html#HsWrapper"><span class="hs-identifier hs-type">HsWrapper</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsExpr"><span class="hs-identifier hs-type">HsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsExpr"><span class="hs-identifier hs-type">HsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span>
</span><span id="line-710"></span><span id="mkHsWrap"><span class="annot"><span class="annottext">mkHsWrap :: HsWrapper -&gt; HsExpr GhcTc -&gt; HsExpr GhcTc
</span><a href="GHC.Hs.Utils.html#mkHsWrap"><span class="hs-identifier hs-var hs-var">mkHsWrap</span></a></span></span><span> </span><span id="local-6989586621680869494"><span class="annot"><span class="annottext">HsWrapper
</span><a href="#local-6989586621680869494"><span class="hs-identifier hs-var">co_fn</span></a></span></span><span> </span><span id="local-6989586621680869493"><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621680869493"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">HsWrapper -&gt; Bool
</span><a href="GHC.Tc.Types.Evidence.html#isIdHsWrapper"><span class="hs-identifier hs-var">isIdHsWrapper</span></a></span><span> </span><span class="annot"><span class="annottext">HsWrapper
</span><a href="#local-6989586621680869494"><span class="hs-identifier hs-var">co_fn</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621680869493"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-711"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsWrap"><span class="hs-identifier hs-var">mkHsWrap</span></a></span><span> </span><span id="local-6989586621680869491"><span class="annot"><span class="annottext">HsWrapper
</span><a href="#local-6989586621680869491"><span class="hs-identifier hs-var">co_fn</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#XExpr"><span class="hs-identifier hs-type">XExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#WrapExpr"><span class="hs-identifier hs-type">WrapExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsWrap"><span class="hs-identifier hs-type">HsWrap</span></a></span><span> </span><span id="local-6989586621680869487"><span class="annot"><span class="annottext">HsWrapper
</span><a href="#local-6989586621680869487"><span class="hs-identifier hs-var">co_fn'</span></a></span></span><span> </span><span id="local-6989586621680869486"><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621680869486"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsWrapper -&gt; HsExpr GhcTc -&gt; HsExpr GhcTc
</span><a href="GHC.Hs.Utils.html#mkHsWrap"><span class="hs-identifier hs-var">mkHsWrap</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsWrapper
</span><a href="#local-6989586621680869491"><span class="hs-identifier hs-var">co_fn</span></a></span><span> </span><span class="annot"><span class="annottext">HsWrapper -&gt; HsWrapper -&gt; HsWrapper
</span><a href="GHC.Tc.Types.Evidence.html#%3C.%3E"><span class="hs-operator hs-var">&lt;.&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">HsWrapper
</span><a href="#local-6989586621680869487"><span class="hs-identifier hs-var">co_fn'</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621680869486"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-712"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsWrap"><span class="hs-identifier hs-var">mkHsWrap</span></a></span><span> </span><span id="local-6989586621680869485"><span class="annot"><span class="annottext">HsWrapper
</span><a href="#local-6989586621680869485"><span class="hs-identifier hs-var">co_fn</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsPar"><span class="hs-identifier hs-type">HsPar</span></a></span><span> </span><span id="local-6989586621680869484"><span class="annot"><span class="annottext">XPar GhcTc
</span><a href="#local-6989586621680869484"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621680869483"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869483"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621680869482"><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621680869482"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span>                </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XPar GhcTc -&gt; LHsExpr GhcTc -&gt; HsExpr GhcTc
forall p. XPar p -&gt; LHsExpr p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#HsPar"><span class="hs-identifier hs-var">HsPar</span></a></span><span> </span><span class="annot"><span class="annottext">XPar GhcTc
</span><a href="#local-6989586621680869484"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; HsExpr GhcTc -&gt; LHsExpr GhcTc
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869483"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsWrapper -&gt; HsExpr GhcTc -&gt; HsExpr GhcTc
</span><a href="GHC.Hs.Utils.html#mkHsWrap"><span class="hs-identifier hs-var">mkHsWrap</span></a></span><span> </span><span class="annot"><span class="annottext">HsWrapper
</span><a href="#local-6989586621680869485"><span class="hs-identifier hs-var">co_fn</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621680869482"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-713"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsWrap"><span class="hs-identifier hs-var">mkHsWrap</span></a></span><span> </span><span id="local-6989586621680869481"><span class="annot"><span class="annottext">HsWrapper
</span><a href="#local-6989586621680869481"><span class="hs-identifier hs-var">co_fn</span></a></span></span><span> </span><span id="local-6989586621680869480"><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621680869480"><span class="hs-identifier hs-var">e</span></a></span></span><span>                                </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XXExpr GhcTc -&gt; HsExpr GhcTc
forall p. XXExpr p -&gt; HsExpr p
</span><a href="GHC.Hs.Expr.html#XExpr"><span class="hs-identifier hs-var">XExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsWrap HsExpr -&gt; XXExprGhcTc
</span><a href="GHC.Hs.Expr.html#WrapExpr"><span class="hs-identifier hs-var">WrapExpr</span></a></span><span> </span><span class="annot"><span class="annottext">(HsWrap HsExpr -&gt; XXExprGhcTc) -&gt; HsWrap HsExpr -&gt; XXExprGhcTc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">HsWrapper -&gt; HsExpr GhcTc -&gt; HsWrap HsExpr
forall (hs_syn :: * -&gt; *).
HsWrapper -&gt; hs_syn GhcTc -&gt; HsWrap hs_syn
</span><a href="GHC.Hs.Expr.html#HsWrap"><span class="hs-identifier hs-var">HsWrap</span></a></span><span> </span><span class="annot"><span class="annottext">HsWrapper
</span><a href="#local-6989586621680869481"><span class="hs-identifier hs-var">co_fn</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621680869480"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-714"></span><span>
</span><span id="line-715"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsWrapCo"><span class="hs-identifier hs-type">mkHsWrapCo</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Tc.Types.Evidence.html#TcCoercionN"><span class="hs-identifier hs-type">TcCoercionN</span></a></span><span>   </span><span class="hs-comment">-- A Nominal coercion  a ~N b</span><span>
</span><span id="line-716"></span><span>           </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsExpr"><span class="hs-identifier hs-type">HsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsExpr"><span class="hs-identifier hs-type">HsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span>
</span><span id="line-717"></span><span id="mkHsWrapCo"><span class="annot"><span class="annottext">mkHsWrapCo :: TcCoercionN -&gt; HsExpr GhcTc -&gt; HsExpr GhcTc
</span><a href="GHC.Hs.Utils.html#mkHsWrapCo"><span class="hs-identifier hs-var hs-var">mkHsWrapCo</span></a></span></span><span> </span><span id="local-6989586621680869479"><span class="annot"><span class="annottext">TcCoercionN
</span><a href="#local-6989586621680869479"><span class="hs-identifier hs-var">co</span></a></span></span><span> </span><span id="local-6989586621680869478"><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621680869478"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsWrapper -&gt; HsExpr GhcTc -&gt; HsExpr GhcTc
</span><a href="GHC.Hs.Utils.html#mkHsWrap"><span class="hs-identifier hs-var">mkHsWrap</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">TcCoercionN -&gt; HsWrapper
</span><a href="GHC.Tc.Types.Evidence.html#mkWpCastN"><span class="hs-identifier hs-var">mkWpCastN</span></a></span><span> </span><span class="annot"><span class="annottext">TcCoercionN
</span><a href="#local-6989586621680869479"><span class="hs-identifier hs-var">co</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621680869478"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-718"></span><span>
</span><span id="line-719"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsWrapCoR"><span class="hs-identifier hs-type">mkHsWrapCoR</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Tc.Types.Evidence.html#TcCoercionR"><span class="hs-identifier hs-type">TcCoercionR</span></a></span><span>   </span><span class="hs-comment">-- A Representational coercion  a ~R b</span><span>
</span><span id="line-720"></span><span>            </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsExpr"><span class="hs-identifier hs-type">HsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsExpr"><span class="hs-identifier hs-type">HsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span>
</span><span id="line-721"></span><span id="mkHsWrapCoR"><span class="annot"><span class="annottext">mkHsWrapCoR :: TcCoercionN -&gt; HsExpr GhcTc -&gt; HsExpr GhcTc
</span><a href="GHC.Hs.Utils.html#mkHsWrapCoR"><span class="hs-identifier hs-var hs-var">mkHsWrapCoR</span></a></span></span><span> </span><span id="local-6989586621680869475"><span class="annot"><span class="annottext">TcCoercionN
</span><a href="#local-6989586621680869475"><span class="hs-identifier hs-var">co</span></a></span></span><span> </span><span id="local-6989586621680869474"><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621680869474"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsWrapper -&gt; HsExpr GhcTc -&gt; HsExpr GhcTc
</span><a href="GHC.Hs.Utils.html#mkHsWrap"><span class="hs-identifier hs-var">mkHsWrap</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">TcCoercionN -&gt; HsWrapper
</span><a href="GHC.Tc.Types.Evidence.html#mkWpCastR"><span class="hs-identifier hs-var">mkWpCastR</span></a></span><span> </span><span class="annot"><span class="annottext">TcCoercionN
</span><a href="#local-6989586621680869475"><span class="hs-identifier hs-var">co</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621680869474"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-722"></span><span>
</span><span id="line-723"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkLHsWrapCo"><span class="hs-identifier hs-type">mkLHsWrapCo</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Tc.Types.Evidence.html#TcCoercionN"><span class="hs-identifier hs-type">TcCoercionN</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span>
</span><span id="line-724"></span><span id="mkLHsWrapCo"><span class="annot"><span class="annottext">mkLHsWrapCo :: TcCoercionN -&gt; LHsExpr GhcTc -&gt; LHsExpr GhcTc
</span><a href="GHC.Hs.Utils.html#mkLHsWrapCo"><span class="hs-identifier hs-var hs-var">mkLHsWrapCo</span></a></span></span><span> </span><span id="local-6989586621680869472"><span class="annot"><span class="annottext">TcCoercionN
</span><a href="#local-6989586621680869472"><span class="hs-identifier hs-var">co</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621680869471"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869471"><span class="hs-identifier hs-var">loc</span></a></span></span><span> </span><span id="local-6989586621680869470"><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621680869470"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; HsExpr GhcTc -&gt; LHsExpr GhcTc
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869471"><span class="hs-identifier hs-var">loc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">TcCoercionN -&gt; HsExpr GhcTc -&gt; HsExpr GhcTc
</span><a href="GHC.Hs.Utils.html#mkHsWrapCo"><span class="hs-identifier hs-var">mkHsWrapCo</span></a></span><span> </span><span class="annot"><span class="annottext">TcCoercionN
</span><a href="#local-6989586621680869472"><span class="hs-identifier hs-var">co</span></a></span><span> </span><span class="annot"><span class="annottext">HsExpr GhcTc
</span><a href="#local-6989586621680869470"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-725"></span><span>
</span><span id="line-726"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsCmdWrap"><span class="hs-identifier hs-type">mkHsCmdWrap</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Tc.Types.Evidence.html#HsWrapper"><span class="hs-identifier hs-type">HsWrapper</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsCmd"><span class="hs-identifier hs-type">HsCmd</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsCmd"><span class="hs-identifier hs-type">HsCmd</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span>
</span><span id="line-727"></span><span id="mkHsCmdWrap"><span class="annot"><span class="annottext">mkHsCmdWrap :: HsWrapper -&gt; HsCmd GhcTc -&gt; HsCmd GhcTc
</span><a href="GHC.Hs.Utils.html#mkHsCmdWrap"><span class="hs-identifier hs-var hs-var">mkHsCmdWrap</span></a></span></span><span> </span><span id="local-6989586621680869469"><span class="annot"><span class="annottext">HsWrapper
</span><a href="#local-6989586621680869469"><span class="hs-identifier hs-var">w</span></a></span></span><span> </span><span id="local-6989586621680869468"><span class="annot"><span class="annottext">HsCmd GhcTc
</span><a href="#local-6989586621680869468"><span class="hs-identifier hs-var">cmd</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">HsWrapper -&gt; Bool
</span><a href="GHC.Tc.Types.Evidence.html#isIdHsWrapper"><span class="hs-identifier hs-var">isIdHsWrapper</span></a></span><span> </span><span class="annot"><span class="annottext">HsWrapper
</span><a href="#local-6989586621680869469"><span class="hs-identifier hs-var">w</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsCmd GhcTc
</span><a href="#local-6989586621680869468"><span class="hs-identifier hs-var">cmd</span></a></span><span>
</span><span id="line-728"></span><span>                  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XXCmd GhcTc -&gt; HsCmd GhcTc
forall id. XXCmd id -&gt; HsCmd id
</span><a href="GHC.Hs.Expr.html#XCmd"><span class="hs-identifier hs-var">XCmd</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsWrapper -&gt; HsCmd GhcTc -&gt; HsWrap HsCmd
forall (hs_syn :: * -&gt; *).
HsWrapper -&gt; hs_syn GhcTc -&gt; HsWrap hs_syn
</span><a href="GHC.Hs.Expr.html#HsWrap"><span class="hs-identifier hs-var">HsWrap</span></a></span><span> </span><span class="annot"><span class="annottext">HsWrapper
</span><a href="#local-6989586621680869469"><span class="hs-identifier hs-var">w</span></a></span><span> </span><span class="annot"><span class="annottext">HsCmd GhcTc
</span><a href="#local-6989586621680869468"><span class="hs-identifier hs-var">cmd</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-729"></span><span>
</span><span id="line-730"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkLHsCmdWrap"><span class="hs-identifier hs-type">mkLHsCmdWrap</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Tc.Types.Evidence.html#HsWrapper"><span class="hs-identifier hs-type">HsWrapper</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsCmd"><span class="hs-identifier hs-type">LHsCmd</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsCmd"><span class="hs-identifier hs-type">LHsCmd</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span>
</span><span id="line-731"></span><span id="mkLHsCmdWrap"><span class="annot"><span class="annottext">mkLHsCmdWrap :: HsWrapper -&gt; LHsCmd GhcTc -&gt; LHsCmd GhcTc
</span><a href="GHC.Hs.Utils.html#mkLHsCmdWrap"><span class="hs-identifier hs-var hs-var">mkLHsCmdWrap</span></a></span></span><span> </span><span id="local-6989586621680869466"><span class="annot"><span class="annottext">HsWrapper
</span><a href="#local-6989586621680869466"><span class="hs-identifier hs-var">w</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621680869465"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869465"><span class="hs-identifier hs-var">loc</span></a></span></span><span> </span><span id="local-6989586621680869464"><span class="annot"><span class="annottext">HsCmd GhcTc
</span><a href="#local-6989586621680869464"><span class="hs-identifier hs-var">c</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; HsCmd GhcTc -&gt; LHsCmd GhcTc
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869465"><span class="hs-identifier hs-var">loc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsWrapper -&gt; HsCmd GhcTc -&gt; HsCmd GhcTc
</span><a href="GHC.Hs.Utils.html#mkHsCmdWrap"><span class="hs-identifier hs-var">mkHsCmdWrap</span></a></span><span> </span><span class="annot"><span class="annottext">HsWrapper
</span><a href="#local-6989586621680869466"><span class="hs-identifier hs-var">w</span></a></span><span> </span><span class="annot"><span class="annottext">HsCmd GhcTc
</span><a href="#local-6989586621680869464"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-732"></span><span>
</span><span id="line-733"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsWrapPat"><span class="hs-identifier hs-type">mkHsWrapPat</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Tc.Types.Evidence.html#HsWrapper"><span class="hs-identifier hs-type">HsWrapper</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#Pat"><span class="hs-identifier hs-type">Pat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Core.TyCo.Rep.html#Type"><span class="hs-identifier hs-type">Type</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#Pat"><span class="hs-identifier hs-type">Pat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span>
</span><span id="line-734"></span><span id="mkHsWrapPat"><span class="annot"><span class="annottext">mkHsWrapPat :: HsWrapper -&gt; Pat GhcTc -&gt; Type -&gt; Pat GhcTc
</span><a href="GHC.Hs.Utils.html#mkHsWrapPat"><span class="hs-identifier hs-var hs-var">mkHsWrapPat</span></a></span></span><span> </span><span id="local-6989586621680869463"><span class="annot"><span class="annottext">HsWrapper
</span><a href="#local-6989586621680869463"><span class="hs-identifier hs-var">co_fn</span></a></span></span><span> </span><span id="local-6989586621680869462"><span class="annot"><span class="annottext">Pat GhcTc
</span><a href="#local-6989586621680869462"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span id="local-6989586621680869461"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621680869461"><span class="hs-identifier hs-var">ty</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">HsWrapper -&gt; Bool
</span><a href="GHC.Tc.Types.Evidence.html#isIdHsWrapper"><span class="hs-identifier hs-var">isIdHsWrapper</span></a></span><span> </span><span class="annot"><span class="annottext">HsWrapper
</span><a href="#local-6989586621680869463"><span class="hs-identifier hs-var">co_fn</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Pat GhcTc
</span><a href="#local-6989586621680869462"><span class="hs-identifier hs-var">p</span></a></span><span>
</span><span id="line-735"></span><span>                       </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>           </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XXPat GhcTc -&gt; Pat GhcTc
forall p. XXPat p -&gt; Pat p
</span><a href="GHC.Hs.Pat.html#XPat"><span class="hs-identifier hs-var">XPat</span></a></span><span> </span><span class="annot"><span class="annottext">(XXPat GhcTc -&gt; Pat GhcTc) -&gt; XXPat GhcTc -&gt; Pat GhcTc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">HsWrapper -&gt; Pat GhcTc -&gt; Type -&gt; CoPat
</span><a href="GHC.Hs.Pat.html#CoPat"><span class="hs-identifier hs-var">CoPat</span></a></span><span> </span><span class="annot"><span class="annottext">HsWrapper
</span><a href="#local-6989586621680869463"><span class="hs-identifier hs-var">co_fn</span></a></span><span> </span><span class="annot"><span class="annottext">Pat GhcTc
</span><a href="#local-6989586621680869462"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621680869461"><span class="hs-identifier hs-var">ty</span></a></span><span>
</span><span id="line-736"></span><span>
</span><span id="line-737"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsWrapPatCo"><span class="hs-identifier hs-type">mkHsWrapPatCo</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Tc.Types.Evidence.html#TcCoercionN"><span class="hs-identifier hs-type">TcCoercionN</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#Pat"><span class="hs-identifier hs-type">Pat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Core.TyCo.Rep.html#Type"><span class="hs-identifier hs-type">Type</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#Pat"><span class="hs-identifier hs-type">Pat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span>
</span><span id="line-738"></span><span id="mkHsWrapPatCo"><span class="annot"><span class="annottext">mkHsWrapPatCo :: TcCoercionN -&gt; Pat GhcTc -&gt; Type -&gt; Pat GhcTc
</span><a href="GHC.Hs.Utils.html#mkHsWrapPatCo"><span class="hs-identifier hs-var hs-var">mkHsWrapPatCo</span></a></span></span><span> </span><span id="local-6989586621680869458"><span class="annot"><span class="annottext">TcCoercionN
</span><a href="#local-6989586621680869458"><span class="hs-identifier hs-var">co</span></a></span></span><span> </span><span id="local-6989586621680869457"><span class="annot"><span class="annottext">Pat GhcTc
</span><a href="#local-6989586621680869457"><span class="hs-identifier hs-var">pat</span></a></span></span><span> </span><span id="local-6989586621680869456"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621680869456"><span class="hs-identifier hs-var">ty</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">TcCoercionN -&gt; Bool
</span><a href="GHC.Tc.Types.Evidence.html#isTcReflCo"><span class="hs-identifier hs-var">isTcReflCo</span></a></span><span> </span><span class="annot"><span class="annottext">TcCoercionN
</span><a href="#local-6989586621680869458"><span class="hs-identifier hs-var">co</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Pat GhcTc
</span><a href="#local-6989586621680869457"><span class="hs-identifier hs-var">pat</span></a></span><span>
</span><span id="line-739"></span><span>                        </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XXPat GhcTc -&gt; Pat GhcTc
forall p. XXPat p -&gt; Pat p
</span><a href="GHC.Hs.Pat.html#XPat"><span class="hs-identifier hs-var">XPat</span></a></span><span> </span><span class="annot"><span class="annottext">(XXPat GhcTc -&gt; Pat GhcTc) -&gt; XXPat GhcTc -&gt; Pat GhcTc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">HsWrapper -&gt; Pat GhcTc -&gt; Type -&gt; CoPat
</span><a href="GHC.Hs.Pat.html#CoPat"><span class="hs-identifier hs-var">CoPat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">TcCoercionN -&gt; HsWrapper
</span><a href="GHC.Tc.Types.Evidence.html#mkWpCastN"><span class="hs-identifier hs-var">mkWpCastN</span></a></span><span> </span><span class="annot"><span class="annottext">TcCoercionN
</span><a href="#local-6989586621680869458"><span class="hs-identifier hs-var">co</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Pat GhcTc
</span><a href="#local-6989586621680869457"><span class="hs-identifier hs-var">pat</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621680869456"><span class="hs-identifier hs-var">ty</span></a></span><span>
</span><span id="line-740"></span><span>
</span><span id="line-741"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsDictLet"><span class="hs-identifier hs-type">mkHsDictLet</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Tc.Types.Evidence.html#TcEvBinds"><span class="hs-identifier hs-type">TcEvBinds</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span>
</span><span id="line-742"></span><span id="mkHsDictLet"><span class="annot"><span class="annottext">mkHsDictLet :: TcEvBinds -&gt; LHsExpr GhcTc -&gt; LHsExpr GhcTc
</span><a href="GHC.Hs.Utils.html#mkHsDictLet"><span class="hs-identifier hs-var hs-var">mkHsDictLet</span></a></span></span><span> </span><span id="local-6989586621680869454"><span class="annot"><span class="annottext">TcEvBinds
</span><a href="#local-6989586621680869454"><span class="hs-identifier hs-var">ev_binds</span></a></span></span><span> </span><span id="local-6989586621680869453"><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621680869453"><span class="hs-identifier hs-var">expr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsWrapper -&gt; LHsExpr GhcTc -&gt; LHsExpr GhcTc
</span><a href="GHC.Hs.Utils.html#mkLHsWrap"><span class="hs-identifier hs-var">mkLHsWrap</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">TcEvBinds -&gt; HsWrapper
</span><a href="GHC.Tc.Types.Evidence.html#mkWpLet"><span class="hs-identifier hs-var">mkWpLet</span></a></span><span> </span><span class="annot"><span class="annottext">TcEvBinds
</span><a href="#local-6989586621680869454"><span class="hs-identifier hs-var">ev_binds</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">LHsExpr GhcTc
</span><a href="#local-6989586621680869453"><span class="hs-identifier hs-var">expr</span></a></span><span>
</span><span id="line-743"></span><span>
</span><span id="line-744"></span><span class="hs-comment">{-
l
************************************************************************
*                                                                      *
                Bindings; with a location at the top
*                                                                      *
************************************************************************
-}</span><span>
</span><span id="line-752"></span><span>
</span><span id="line-753"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkFunBind"><span class="hs-identifier hs-type">mkFunBind</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Basic.html#Origin"><span class="hs-identifier hs-type">Origin</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="annot"><a href="GHC.Types.Name.Reader.html#RdrName"><span class="hs-identifier hs-type">RdrName</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#LMatch"><span class="hs-identifier hs-type">LMatch</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-754"></span><span>          </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#HsBind"><span class="hs-identifier hs-type">HsBind</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-755"></span><span class="hs-comment">-- ^ Not infix, with place holders for coercion and free vars</span><span>
</span><span id="line-756"></span><span id="mkFunBind"><span class="annot"><span class="annottext">mkFunBind :: Origin
-&gt; Located RdrName
-&gt; [LMatch GhcPs (Located (HsExpr GhcPs))]
-&gt; HsBind GhcPs
</span><a href="GHC.Hs.Utils.html#mkFunBind"><span class="hs-identifier hs-var hs-var">mkFunBind</span></a></span></span><span> </span><span id="local-6989586621680869451"><span class="annot"><span class="annottext">Origin
</span><a href="#local-6989586621680869451"><span class="hs-identifier hs-var">origin</span></a></span></span><span> </span><span id="local-6989586621680869450"><span class="annot"><span class="annottext">Located RdrName
</span><a href="#local-6989586621680869450"><span class="hs-identifier hs-var">fn</span></a></span></span><span> </span><span id="local-6989586621680869449"><span class="annot"><span class="annottext">[LMatch GhcPs (Located (HsExpr GhcPs))]
</span><a href="#local-6989586621680869449"><span class="hs-identifier hs-var">ms</span></a></span></span><span>
</span><span id="line-757"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FunBind :: forall idL idR.
XFunBind idL idR
-&gt; Located (IdP idL)
-&gt; MatchGroup idR (LHsExpr idR)
-&gt; [Tickish Id]
-&gt; HsBindLR idL idR
</span><a href="GHC.Hs.Binds.html#FunBind"><span class="hs-identifier hs-type">FunBind</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">fun_id :: Located (IdP GhcPs)
</span><a href="GHC.Hs.Binds.html#fun_id"><span class="hs-identifier hs-var">fun_id</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Located RdrName
Located (IdP GhcPs)
</span><a href="#local-6989586621680869450"><span class="hs-identifier hs-var">fn</span></a></span><span>
</span><span id="line-758"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">fun_matches :: MatchGroup GhcPs (Located (HsExpr GhcPs))
</span><a href="GHC.Hs.Binds.html#fun_matches"><span class="hs-identifier hs-var">fun_matches</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Origin
-&gt; [LMatch GhcPs (Located (HsExpr GhcPs))]
-&gt; MatchGroup GhcPs (Located (HsExpr GhcPs))
forall name (body :: * -&gt; *).
(XMG name (Located (body name)) ~ NoExtField) =&gt;
Origin
-&gt; [LMatch name (Located (body name))]
-&gt; MatchGroup name (Located (body name))
</span><a href="GHC.Hs.Utils.html#mkMatchGroup"><span class="hs-identifier hs-var">mkMatchGroup</span></a></span><span> </span><span class="annot"><span class="annottext">Origin
</span><a href="#local-6989586621680869451"><span class="hs-identifier hs-var">origin</span></a></span><span> </span><span class="annot"><span class="annottext">[LMatch GhcPs (Located (HsExpr GhcPs))]
</span><a href="#local-6989586621680869449"><span class="hs-identifier hs-var">ms</span></a></span><span>
</span><span id="line-759"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">fun_ext :: XFunBind GhcPs GhcPs
</span><a href="GHC.Hs.Binds.html#fun_ext"><span class="hs-identifier hs-var">fun_ext</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NoExtField
XFunBind GhcPs GhcPs
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span>
</span><span id="line-760"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">fun_tick :: [Tickish Id]
</span><a href="GHC.Hs.Binds.html#fun_tick"><span class="hs-identifier hs-var">fun_tick</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-761"></span><span>
</span><span id="line-762"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkTopFunBind"><span class="hs-identifier hs-type">mkTopFunBind</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Basic.html#Origin"><span class="hs-identifier hs-type">Origin</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="annot"><a href="GHC.Types.Name.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#LMatch"><span class="hs-identifier hs-type">LMatch</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-763"></span><span>             </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#HsBind"><span class="hs-identifier hs-type">HsBind</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span>
</span><span id="line-764"></span><span class="hs-comment">-- ^ In Name-land, with empty bind_fvs</span><span>
</span><span id="line-765"></span><span id="mkTopFunBind"><span class="annot"><span class="annottext">mkTopFunBind :: Origin
-&gt; Located Name
-&gt; [LMatch GhcRn (Located (HsExpr GhcRn))]
-&gt; HsBind GhcRn
</span><a href="GHC.Hs.Utils.html#mkTopFunBind"><span class="hs-identifier hs-var hs-var">mkTopFunBind</span></a></span></span><span> </span><span id="local-6989586621680869443"><span class="annot"><span class="annottext">Origin
</span><a href="#local-6989586621680869443"><span class="hs-identifier hs-var">origin</span></a></span></span><span> </span><span id="local-6989586621680869442"><span class="annot"><span class="annottext">Located Name
</span><a href="#local-6989586621680869442"><span class="hs-identifier hs-var">fn</span></a></span></span><span> </span><span id="local-6989586621680869441"><span class="annot"><span class="annottext">[LMatch GhcRn (Located (HsExpr GhcRn))]
</span><a href="#local-6989586621680869441"><span class="hs-identifier hs-var">ms</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FunBind :: forall idL idR.
XFunBind idL idR
-&gt; Located (IdP idL)
-&gt; MatchGroup idR (LHsExpr idR)
-&gt; [Tickish Id]
-&gt; HsBindLR idL idR
</span><a href="GHC.Hs.Binds.html#FunBind"><span class="hs-identifier hs-type">FunBind</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">fun_id :: Located (IdP GhcRn)
</span><a href="GHC.Hs.Binds.html#fun_id"><span class="hs-identifier hs-var">fun_id</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Located Name
Located (IdP GhcRn)
</span><a href="#local-6989586621680869442"><span class="hs-identifier hs-var">fn</span></a></span><span>
</span><span id="line-766"></span><span>                                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">fun_matches :: MatchGroup GhcRn (Located (HsExpr GhcRn))
</span><a href="GHC.Hs.Binds.html#fun_matches"><span class="hs-identifier hs-var">fun_matches</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Origin
-&gt; [LMatch GhcRn (Located (HsExpr GhcRn))]
-&gt; MatchGroup GhcRn (Located (HsExpr GhcRn))
forall name (body :: * -&gt; *).
(XMG name (Located (body name)) ~ NoExtField) =&gt;
Origin
-&gt; [LMatch name (Located (body name))]
-&gt; MatchGroup name (Located (body name))
</span><a href="GHC.Hs.Utils.html#mkMatchGroup"><span class="hs-identifier hs-var">mkMatchGroup</span></a></span><span> </span><span class="annot"><span class="annottext">Origin
</span><a href="#local-6989586621680869443"><span class="hs-identifier hs-var">origin</span></a></span><span> </span><span class="annot"><span class="annottext">[LMatch GhcRn (Located (HsExpr GhcRn))]
</span><a href="#local-6989586621680869441"><span class="hs-identifier hs-var">ms</span></a></span><span>
</span><span id="line-767"></span><span>                                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">fun_ext :: XFunBind GhcRn GhcRn
</span><a href="GHC.Hs.Binds.html#fun_ext"><span class="hs-identifier hs-var">fun_ext</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NameSet
XFunBind GhcRn GhcRn
</span><a href="GHC.Types.Name.Set.html#emptyNameSet"><span class="hs-identifier hs-var">emptyNameSet</span></a></span><span> </span><span class="hs-comment">-- NB: closed</span><span>
</span><span id="line-768"></span><span>                                                              </span><span class="hs-comment">--     binding</span><span>
</span><span id="line-769"></span><span>                                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">fun_tick :: [Tickish Id]
</span><a href="GHC.Hs.Binds.html#fun_tick"><span class="hs-identifier hs-var">fun_tick</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-770"></span><span>
</span><span id="line-771"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkHsVarBind"><span class="hs-identifier hs-type">mkHsVarBind</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Name.Reader.html#RdrName"><span class="hs-identifier hs-type">RdrName</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#LHsBind"><span class="hs-identifier hs-type">LHsBind</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-772"></span><span id="mkHsVarBind"><span class="annot"><span class="annottext">mkHsVarBind :: SrcSpan -&gt; RdrName -&gt; Located (HsExpr GhcPs) -&gt; LHsBind GhcPs
</span><a href="GHC.Hs.Utils.html#mkHsVarBind"><span class="hs-identifier hs-var hs-var">mkHsVarBind</span></a></span></span><span> </span><span id="local-6989586621680869439"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869439"><span class="hs-identifier hs-var">loc</span></a></span></span><span> </span><span id="local-6989586621680869438"><span class="annot"><span class="annottext">RdrName
</span><a href="#local-6989586621680869438"><span class="hs-identifier hs-var">var</span></a></span></span><span> </span><span id="local-6989586621680869437"><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869437"><span class="hs-identifier hs-var">rhs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SrcSpan
-&gt; RdrName
-&gt; [LPat GhcPs]
-&gt; Located (HsExpr GhcPs)
-&gt; LHsBind GhcPs
</span><a href="GHC.Hs.Utils.html#mkSimpleGeneratedFunBind"><span class="hs-identifier hs-var">mkSimpleGeneratedFunBind</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869439"><span class="hs-identifier hs-var">loc</span></a></span><span> </span><span class="annot"><span class="annottext">RdrName
</span><a href="#local-6989586621680869438"><span class="hs-identifier hs-var">var</span></a></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869437"><span class="hs-identifier hs-var">rhs</span></a></span><span>
</span><span id="line-773"></span><span>
</span><span id="line-774"></span><span id="local-6989586621680870451"><span class="annot"><a href="GHC.Hs.Utils.html#mkVarBind"><span class="hs-identifier hs-type">mkVarBind</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870451"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870451"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#LHsBind"><span class="hs-identifier hs-type">LHsBind</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870451"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-775"></span><span id="mkVarBind"><span class="annot"><span class="annottext">mkVarBind :: forall (p :: Pass).
IdP (GhcPass p) -&gt; LHsExpr (GhcPass p) -&gt; LHsBind (GhcPass p)
</span><a href="GHC.Hs.Utils.html#mkVarBind"><span class="hs-identifier hs-var hs-var">mkVarBind</span></a></span></span><span> </span><span id="local-6989586621680869436"><span class="annot"><span class="annottext">IdP (GhcPass p)
</span><a href="#local-6989586621680869436"><span class="hs-identifier hs-var">var</span></a></span></span><span> </span><span id="local-6989586621680869435"><span class="annot"><span class="annottext">LHsExpr (GhcPass p)
</span><a href="#local-6989586621680869435"><span class="hs-identifier hs-var">rhs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SrcSpan
-&gt; HsBindLR (GhcPass p) (GhcPass p)
-&gt; GenLocated SrcSpan (HsBindLR (GhcPass p) (GhcPass p))
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsExpr (GhcPass p) -&gt; SrcSpan
forall l e. GenLocated l e -&gt; l
</span><a href="GHC.Types.SrcLoc.html#getLoc"><span class="hs-identifier hs-var">getLoc</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr (GhcPass p)
</span><a href="#local-6989586621680869435"><span class="hs-identifier hs-var">rhs</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(HsBindLR (GhcPass p) (GhcPass p)
 -&gt; GenLocated SrcSpan (HsBindLR (GhcPass p) (GhcPass p)))
-&gt; HsBindLR (GhcPass p) (GhcPass p)
-&gt; GenLocated SrcSpan (HsBindLR (GhcPass p) (GhcPass p))
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-776"></span><span>                    </span><span class="annot"><span class="annottext">VarBind :: forall idL idR.
XVarBind idL idR -&gt; IdP idL -&gt; LHsExpr idR -&gt; HsBindLR idL idR
</span><a href="GHC.Hs.Binds.html#VarBind"><span class="hs-identifier hs-type">VarBind</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">var_ext :: XVarBind (GhcPass p) (GhcPass p)
</span><a href="GHC.Hs.Binds.html#var_ext"><span class="hs-identifier hs-var">var_ext</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NoExtField
XVarBind (GhcPass p) (GhcPass p)
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-777"></span><span>                              </span><span class="annot"><span class="annottext">var_id :: IdP (GhcPass p)
</span><a href="GHC.Hs.Binds.html#var_id"><span class="hs-identifier hs-var">var_id</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IdP (GhcPass p)
</span><a href="#local-6989586621680869436"><span class="hs-identifier hs-var">var</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">var_rhs :: LHsExpr (GhcPass p)
</span><a href="GHC.Hs.Binds.html#var_rhs"><span class="hs-identifier hs-var">var_rhs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LHsExpr (GhcPass p)
</span><a href="#local-6989586621680869435"><span class="hs-identifier hs-var">rhs</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-778"></span><span>
</span><span id="line-779"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkPatSynBind"><span class="hs-identifier hs-type">mkPatSynBind</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="annot"><a href="GHC.Types.Name.Reader.html#RdrName"><span class="hs-identifier hs-type">RdrName</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#HsPatSynDetails"><span class="hs-identifier hs-type">HsPatSynDetails</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="annot"><a href="GHC.Types.Name.Reader.html#RdrName"><span class="hs-identifier hs-type">RdrName</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-780"></span><span>             </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#HsPatSynDir"><span class="hs-identifier hs-type">HsPatSynDir</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#HsBind"><span class="hs-identifier hs-type">HsBind</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-781"></span><span id="mkPatSynBind"><span class="annot"><span class="annottext">mkPatSynBind :: Located RdrName
-&gt; HsPatSynDetails (Located RdrName)
-&gt; LPat GhcPs
-&gt; HsPatSynDir GhcPs
-&gt; HsBind GhcPs
</span><a href="GHC.Hs.Utils.html#mkPatSynBind"><span class="hs-identifier hs-var hs-var">mkPatSynBind</span></a></span></span><span> </span><span id="local-6989586621680869430"><span class="annot"><span class="annottext">Located RdrName
</span><a href="#local-6989586621680869430"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span id="local-6989586621680869429"><span class="annot"><span class="annottext">HsPatSynDetails (Located RdrName)
</span><a href="#local-6989586621680869429"><span class="hs-identifier hs-var">details</span></a></span></span><span> </span><span id="local-6989586621680869428"><span class="annot"><span class="annottext">LPat GhcPs
</span><a href="#local-6989586621680869428"><span class="hs-identifier hs-var">lpat</span></a></span></span><span> </span><span id="local-6989586621680869427"><span class="annot"><span class="annottext">HsPatSynDir GhcPs
</span><a href="#local-6989586621680869427"><span class="hs-identifier hs-var">dir</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XPatSynBind GhcPs GhcPs -&gt; PatSynBind GhcPs GhcPs -&gt; HsBind GhcPs
forall idL idR.
XPatSynBind idL idR -&gt; PatSynBind idL idR -&gt; HsBindLR idL idR
</span><a href="GHC.Hs.Binds.html#PatSynBind"><span class="hs-identifier hs-var">PatSynBind</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XPatSynBind GhcPs GhcPs
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">PatSynBind GhcPs GhcPs
</span><a href="#local-6989586621680869425"><span class="hs-identifier hs-var">psb</span></a></span><span>
</span><span id="line-782"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-783"></span><span>    </span><span id="local-6989586621680869425"><span class="annot"><span class="annottext">psb :: PatSynBind GhcPs GhcPs
</span><a href="#local-6989586621680869425"><span class="hs-identifier hs-var hs-var">psb</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PSB :: forall idL idR.
XPSB idL idR
-&gt; Located (IdP idL)
-&gt; HsPatSynDetails (Located (IdP idR))
-&gt; LPat idR
-&gt; HsPatSynDir idR
-&gt; PatSynBind idL idR
</span><a href="GHC.Hs.Binds.html#PSB"><span class="hs-identifier hs-type">PSB</span></a></span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">psb_ext :: XPSB GhcPs GhcPs
</span><a href="GHC.Hs.Binds.html#psb_ext"><span class="hs-identifier hs-var">psb_ext</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NoExtField
XPSB GhcPs GhcPs
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span>
</span><span id="line-784"></span><span>             </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">psb_id :: Located (IdP GhcPs)
</span><a href="GHC.Hs.Binds.html#psb_id"><span class="hs-identifier hs-var">psb_id</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Located RdrName
Located (IdP GhcPs)
</span><a href="#local-6989586621680869430"><span class="hs-identifier hs-var">name</span></a></span><span>
</span><span id="line-785"></span><span>             </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">psb_args :: HsPatSynDetails (Located (IdP GhcPs))
</span><a href="GHC.Hs.Binds.html#psb_args"><span class="hs-identifier hs-var">psb_args</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsPatSynDetails (Located RdrName)
HsPatSynDetails (Located (IdP GhcPs))
</span><a href="#local-6989586621680869429"><span class="hs-identifier hs-var">details</span></a></span><span>
</span><span id="line-786"></span><span>             </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">psb_def :: LPat GhcPs
</span><a href="GHC.Hs.Binds.html#psb_def"><span class="hs-identifier hs-var">psb_def</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LPat GhcPs
</span><a href="#local-6989586621680869428"><span class="hs-identifier hs-var">lpat</span></a></span><span>
</span><span id="line-787"></span><span>             </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">psb_dir :: HsPatSynDir GhcPs
</span><a href="GHC.Hs.Binds.html#psb_dir"><span class="hs-identifier hs-var">psb_dir</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsPatSynDir GhcPs
</span><a href="#local-6989586621680869427"><span class="hs-identifier hs-var">dir</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-788"></span><span>
</span><span id="line-789"></span><span class="hs-comment">-- |If any of the matches in the 'FunBind' are infix, the 'FunBind' is</span><span>
</span><span id="line-790"></span><span class="hs-comment">-- considered infix.</span><span>
</span><span id="line-791"></span><span id="local-6989586621680870440"><span id="local-6989586621680870441"><span class="annot"><a href="GHC.Hs.Utils.html#isInfixFunBind"><span class="hs-identifier hs-type">isInfixFunBind</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#HsBindLR"><span class="hs-identifier hs-type">HsBindLR</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870441"><span class="hs-identifier hs-type">id1</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870440"><span class="hs-identifier hs-type">id2</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span></span></span><span>
</span><span id="line-792"></span><span id="isInfixFunBind"><span class="annot"><span class="annottext">isInfixFunBind :: forall id1 id2. HsBindLR id1 id2 -&gt; Bool
</span><a href="GHC.Hs.Utils.html#isInfixFunBind"><span class="hs-identifier hs-var hs-var">isInfixFunBind</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#FunBind"><span class="hs-identifier hs-type">FunBind</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">fun_matches :: forall idL idR. HsBindLR idL idR -&gt; MatchGroup idR (LHsExpr idR)
</span><a href="GHC.Hs.Binds.html#fun_matches"><span class="hs-identifier hs-var">fun_matches</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#MG"><span class="hs-identifier hs-type">MG</span></a></span><span> </span><span class="annot"><span class="annottext">XMG id2 (LHsExpr id2)
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869417"><span class="annot"><span class="annottext">Located [LMatch id2 (LHsExpr id2)]
</span><a href="#local-6989586621680869417"><span class="hs-identifier hs-var">matches</span></a></span></span><span> </span><span class="annot"><span class="annottext">Origin
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-793"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(LMatch id2 (LHsExpr id2) -&gt; Bool)
-&gt; [LMatch id2 (LHsExpr id2)] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; (a -&gt; Bool) -&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#any"><span class="hs-identifier hs-var">any</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Match id2 (LHsExpr id2) -&gt; Bool
forall id body. Match id body -&gt; Bool
</span><a href="GHC.Hs.Expr.html#isInfixMatch"><span class="hs-identifier hs-var">isInfixMatch</span></a></span><span> </span><span class="annot"><span class="annottext">(Match id2 (LHsExpr id2) -&gt; Bool)
-&gt; (LMatch id2 (LHsExpr id2) -&gt; Match id2 (LHsExpr id2))
-&gt; LMatch id2 (LHsExpr id2)
-&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">LMatch id2 (LHsExpr id2) -&gt; Match id2 (LHsExpr id2)
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Located [LMatch id2 (LHsExpr id2)] -&gt; [LMatch id2 (LHsExpr id2)]
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span> </span><span class="annot"><span class="annottext">Located [LMatch id2 (LHsExpr id2)]
</span><a href="#local-6989586621680869417"><span class="hs-identifier hs-var">matches</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-794"></span><span class="annot"><a href="GHC.Hs.Utils.html#isInfixFunBind"><span class="hs-identifier hs-var">isInfixFunBind</span></a></span><span> </span><span class="annot"><span class="annottext">HsBindLR id1 id2
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span>
</span><span id="line-795"></span><span>
</span><span id="line-796"></span><span>
</span><span id="line-797"></span><span class="hs-comment">------------</span><span>
</span><span id="line-798"></span><span class="hs-comment">-- | Convenience function using 'mkFunBind'.</span><span>
</span><span id="line-799"></span><span class="hs-comment">-- This is for generated bindings only, do not use for user-written code.</span><span>
</span><span id="line-800"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkSimpleGeneratedFunBind"><span class="hs-identifier hs-type">mkSimpleGeneratedFunBind</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Name.Reader.html#RdrName"><span class="hs-identifier hs-type">RdrName</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-801"></span><span>                </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#LHsBind"><span class="hs-identifier hs-type">LHsBind</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-802"></span><span id="mkSimpleGeneratedFunBind"><span class="annot"><span class="annottext">mkSimpleGeneratedFunBind :: SrcSpan
-&gt; RdrName
-&gt; [LPat GhcPs]
-&gt; Located (HsExpr GhcPs)
-&gt; LHsBind GhcPs
</span><a href="GHC.Hs.Utils.html#mkSimpleGeneratedFunBind"><span class="hs-identifier hs-var hs-var">mkSimpleGeneratedFunBind</span></a></span></span><span> </span><span id="local-6989586621680869414"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869414"><span class="hs-identifier hs-var">loc</span></a></span></span><span> </span><span id="local-6989586621680869413"><span class="annot"><span class="annottext">RdrName
</span><a href="#local-6989586621680869413"><span class="hs-identifier hs-var">fun</span></a></span></span><span> </span><span id="local-6989586621680869412"><span class="annot"><span class="annottext">[LPat GhcPs]
</span><a href="#local-6989586621680869412"><span class="hs-identifier hs-var">pats</span></a></span></span><span> </span><span id="local-6989586621680869411"><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869411"><span class="hs-identifier hs-var">expr</span></a></span></span><span>
</span><span id="line-803"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; HsBind GhcPs -&gt; LHsBind GhcPs
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869414"><span class="hs-identifier hs-var">loc</span></a></span><span> </span><span class="annot"><span class="annottext">(HsBind GhcPs -&gt; LHsBind GhcPs) -&gt; HsBind GhcPs -&gt; LHsBind GhcPs
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Origin
-&gt; Located RdrName
-&gt; [LMatch GhcPs (Located (HsExpr GhcPs))]
-&gt; HsBind GhcPs
</span><a href="GHC.Hs.Utils.html#mkFunBind"><span class="hs-identifier hs-var">mkFunBind</span></a></span><span> </span><span class="annot"><span class="annottext">Origin
</span><a href="GHC.Types.Basic.html#Generated"><span class="hs-identifier hs-var">Generated</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; RdrName -&gt; Located RdrName
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869414"><span class="hs-identifier hs-var">loc</span></a></span><span> </span><span class="annot"><span class="annottext">RdrName
</span><a href="#local-6989586621680869413"><span class="hs-identifier hs-var">fun</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-804"></span><span>              </span><span class="hs-special">[</span><span class="annot"><span class="annottext">HsMatchContext (NoGhcTc GhcPs)
-&gt; [LPat GhcPs]
-&gt; Located (HsExpr GhcPs)
-&gt; Located (HsLocalBinds GhcPs)
-&gt; LMatch GhcPs (Located (HsExpr GhcPs))
forall (p :: Pass).
IsPass p =&gt;
HsMatchContext (NoGhcTc (GhcPass p))
-&gt; [LPat (GhcPass p)]
-&gt; LHsExpr (GhcPass p)
-&gt; Located (HsLocalBinds (GhcPass p))
-&gt; LMatch (GhcPass p) (LHsExpr (GhcPass p))
</span><a href="GHC.Hs.Utils.html#mkMatch"><span class="hs-identifier hs-var">mkMatch</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Located (IdP GhcPs) -&gt; HsMatchContext GhcPs
forall p. LIdP p -&gt; HsMatchContext p
</span><a href="GHC.Hs.Utils.html#mkPrefixFunRhs"><span class="hs-identifier hs-var">mkPrefixFunRhs</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; RdrName -&gt; Located RdrName
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869414"><span class="hs-identifier hs-var">loc</span></a></span><span> </span><span class="annot"><span class="annottext">RdrName
</span><a href="#local-6989586621680869413"><span class="hs-identifier hs-var">fun</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[LPat GhcPs]
</span><a href="#local-6989586621680869412"><span class="hs-identifier hs-var">pats</span></a></span><span> </span><span class="annot"><span class="annottext">Located (HsExpr GhcPs)
</span><a href="#local-6989586621680869411"><span class="hs-identifier hs-var">expr</span></a></span><span>
</span><span id="line-805"></span><span>                       </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsLocalBinds GhcPs -&gt; Located (HsLocalBinds GhcPs)
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="annot"><span class="annottext">HsLocalBinds GhcPs
forall (a :: Pass) (b :: Pass).
HsLocalBindsLR (GhcPass a) (GhcPass b)
</span><a href="GHC.Hs.Binds.html#emptyLocalBinds"><span class="hs-identifier hs-var">emptyLocalBinds</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-806"></span><span>
</span><span id="line-807"></span><span class="hs-comment">-- | Make a prefix, non-strict function 'HsMatchContext'</span><span>
</span><span id="line-808"></span><span id="local-6989586621680870429"><span class="annot"><a href="GHC.Hs.Utils.html#mkPrefixFunRhs"><span class="hs-identifier hs-type">mkPrefixFunRhs</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#LIdP"><span class="hs-identifier hs-type">LIdP</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870429"><span class="hs-identifier hs-type">p</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsMatchContext"><span class="hs-identifier hs-type">HsMatchContext</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870429"><span class="hs-identifier hs-type">p</span></a></span></span><span>
</span><span id="line-809"></span><span id="mkPrefixFunRhs"><span class="annot"><span class="annottext">mkPrefixFunRhs :: forall p. LIdP p -&gt; HsMatchContext p
</span><a href="GHC.Hs.Utils.html#mkPrefixFunRhs"><span class="hs-identifier hs-var hs-var">mkPrefixFunRhs</span></a></span></span><span> </span><span id="local-6989586621680869410"><span class="annot"><span class="annottext">LIdP p
</span><a href="#local-6989586621680869410"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FunRhs :: forall p.
LIdP p -&gt; LexicalFixity -&gt; SrcStrictness -&gt; HsMatchContext p
</span><a href="GHC.Hs.Expr.html#FunRhs"><span class="hs-identifier hs-type">FunRhs</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">mc_fun :: LIdP p
</span><a href="GHC.Hs.Expr.html#mc_fun"><span class="hs-identifier hs-var">mc_fun</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LIdP p
</span><a href="#local-6989586621680869410"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-810"></span><span>                          </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">mc_fixity :: LexicalFixity
</span><a href="GHC.Hs.Expr.html#mc_fixity"><span class="hs-identifier hs-var">mc_fixity</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LexicalFixity
</span><a href="GHC.Types.Basic.html#Prefix"><span class="hs-identifier hs-var">Prefix</span></a></span><span>
</span><span id="line-811"></span><span>                          </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">mc_strictness :: SrcStrictness
</span><a href="GHC.Hs.Expr.html#mc_strictness"><span class="hs-identifier hs-var">mc_strictness</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SrcStrictness
</span><a href="GHC.Core.DataCon.html#NoSrcStrict"><span class="hs-identifier hs-var">NoSrcStrict</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-812"></span><span>
</span><span id="line-813"></span><span class="hs-comment">------------</span><span>
</span><span id="line-814"></span><span class="annot"><a href="GHC.Hs.Utils.html#mkMatch"><span class="hs-identifier hs-type">mkMatch</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-keyword">forall</span><span> </span><span id="local-6989586621680870430"><span class="annot"><a href="#local-6989586621680870430"><span class="hs-identifier hs-type">p</span></a></span></span><span class="hs-operator">.</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#IsPass"><span class="hs-identifier hs-type">IsPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870430"><span class="hs-identifier hs-type">p</span></a></span><span>
</span><span id="line-815"></span><span>        </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#HsMatchContext"><span class="hs-identifier hs-type">HsMatchContext</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#NoGhcTc"><span class="hs-identifier hs-type">NoGhcTc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870430"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-816"></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870430"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-817"></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870430"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-818"></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#HsLocalBinds"><span class="hs-identifier hs-type">HsLocalBinds</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870430"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-819"></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LMatch"><span class="hs-identifier hs-type">LMatch</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870430"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LHsExpr"><span class="hs-identifier hs-type">LHsExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870430"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-820"></span><span id="mkMatch"><span class="annot"><span class="annottext">mkMatch :: forall (p :: Pass).
IsPass p =&gt;
HsMatchContext (NoGhcTc (GhcPass p))
-&gt; [LPat (GhcPass p)]
-&gt; LHsExpr (GhcPass p)
-&gt; Located (HsLocalBinds (GhcPass p))
-&gt; LMatch (GhcPass p) (LHsExpr (GhcPass p))
</span><a href="GHC.Hs.Utils.html#mkMatch"><span class="hs-identifier hs-var hs-var">mkMatch</span></a></span></span><span> </span><span id="local-6989586621680869401"><span class="annot"><span class="annottext">HsMatchContext (NoGhcTc (GhcPass p))
</span><a href="#local-6989586621680869401"><span class="hs-identifier hs-var">ctxt</span></a></span></span><span> </span><span id="local-6989586621680869400"><span class="annot"><span class="annottext">[LPat (GhcPass p)]
</span><a href="#local-6989586621680869400"><span class="hs-identifier hs-var">pats</span></a></span></span><span> </span><span id="local-6989586621680869399"><span class="annot"><span class="annottext">LHsExpr (GhcPass p)
</span><a href="#local-6989586621680869399"><span class="hs-identifier hs-var">expr</span></a></span></span><span> </span><span id="local-6989586621680869398"><span class="annot"><span class="annottext">Located (HsLocalBinds (GhcPass p))
</span><a href="#local-6989586621680869398"><span class="hs-identifier hs-var">lbinds</span></a></span></span><span>
</span><span id="line-821"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Match (GhcPass p) (LHsExpr (GhcPass p))
-&gt; Located (Match (GhcPass p) (LHsExpr (GhcPass p)))
forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var">noLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Match :: forall p body.
XCMatch p body
-&gt; HsMatchContext (NoGhcTc p)
-&gt; [LPat p]
-&gt; GRHSs p body
-&gt; Match p body
</span><a href="GHC.Hs.Expr.html#Match"><span class="hs-identifier hs-type">Match</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">m_ext :: XCMatch (GhcPass p) (LHsExpr (GhcPass p))
</span><a href="GHC.Hs.Expr.html#m_ext"><span class="hs-identifier hs-var">m_ext</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NoExtField
XCMatch (GhcPass p) (LHsExpr (GhcPass p))
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span>
</span><span id="line-822"></span><span>                 </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">m_ctxt :: HsMatchContext (NoGhcTc (GhcPass p))
</span><a href="GHC.Hs.Expr.html#m_ctxt"><span class="hs-identifier hs-var">m_ctxt</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsMatchContext (NoGhcTc (GhcPass p))
</span><a href="#local-6989586621680869401"><span class="hs-identifier hs-var">ctxt</span></a></span><span>
</span><span id="line-823"></span><span>                 </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">m_pats :: [LPat (GhcPass p)]
</span><a href="GHC.Hs.Expr.html#m_pats"><span class="hs-identifier hs-var">m_pats</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Located (Pat (GhcPass p)) -&gt; Located (Pat (GhcPass p)))
-&gt; [Located (Pat (GhcPass p))] -&gt; [Located (Pat (GhcPass p))]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">Located (Pat (GhcPass p)) -&gt; Located (Pat (GhcPass p))
</span><a href="#local-6989586621680869397"><span class="hs-identifier hs-var">paren</span></a></span><span> </span><span class="annot"><span class="annottext">[Located (Pat (GhcPass p))]
[LPat (GhcPass p)]
</span><a href="#local-6989586621680869400"><span class="hs-identifier hs-var">pats</span></a></span><span>
</span><span id="line-824"></span><span>                 </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">m_grhss :: GRHSs (GhcPass p) (LHsExpr (GhcPass p))
</span><a href="GHC.Hs.Expr.html#m_grhss"><span class="hs-identifier hs-var">m_grhss</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XCGRHSs (GhcPass p) (LHsExpr (GhcPass p))
-&gt; [LGRHS (GhcPass p) (LHsExpr (GhcPass p))]
-&gt; Located (HsLocalBinds (GhcPass p))
-&gt; GRHSs (GhcPass p) (LHsExpr (GhcPass p))
forall p body.
XCGRHSs p body -&gt; [LGRHS p body] -&gt; LHsLocalBinds p -&gt; GRHSs p body
</span><a href="GHC.Hs.Expr.html#GRHSs"><span class="hs-identifier hs-var">GRHSs</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XCGRHSs (GhcPass p) (LHsExpr (GhcPass p))
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan
-&gt; LHsExpr (GhcPass p) -&gt; [LGRHS (GhcPass p) (LHsExpr (GhcPass p))]
forall (body :: * -&gt; *) (p :: Pass).
SrcSpan
-&gt; Located (body (GhcPass p))
-&gt; [LGRHS (GhcPass p) (Located (body (GhcPass p)))]
</span><a href="GHC.Hs.Utils.html#unguardedRHS"><span class="hs-identifier hs-var">unguardedRHS</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="GHC.Types.SrcLoc.html#noSrcSpan"><span class="hs-identifier hs-var">noSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">LHsExpr (GhcPass p)
</span><a href="#local-6989586621680869399"><span class="hs-identifier hs-var">expr</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Located (HsLocalBinds (GhcPass p))
</span><a href="#local-6989586621680869398"><span class="hs-identifier hs-var">lbinds</span></a></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-825"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-826"></span><span>    </span><span class="annot"><a href="#local-6989586621680869397"><span class="hs-identifier hs-type">paren</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#Pat"><span class="hs-identifier hs-type">Pat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870430"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#Pat"><span class="hs-identifier hs-type">Pat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870430"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-827"></span><span>    </span><span id="local-6989586621680869397"><span class="annot"><span class="annottext">paren :: Located (Pat (GhcPass p)) -&gt; Located (Pat (GhcPass p))
</span><a href="#local-6989586621680869397"><span class="hs-identifier hs-var hs-var">paren</span></a></span></span><span> </span><span id="local-6989586621680869396"><span class="annot"><span class="annottext">lp :: Located (Pat (GhcPass p))
</span><a href="#local-6989586621680869396"><span class="hs-identifier hs-var">lp</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621680869395"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869395"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621680869394"><span class="annot"><span class="annottext">Pat (GhcPass p)
</span><a href="#local-6989586621680869394"><span class="hs-identifier hs-var">p</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-828"></span><span>      </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">PprPrec -&gt; Pat (GhcPass p) -&gt; Bool
forall (p :: Pass). IsPass p =&gt; PprPrec -&gt; Pat (GhcPass p) -&gt; Bool
</span><a href="GHC.Hs.Pat.html#patNeedsParens"><span class="hs-identifier hs-var">patNeedsParens</span></a></span><span> </span><span class="annot"><span class="annottext">PprPrec
</span><a href="GHC.Types.Basic.html#appPrec"><span class="hs-identifier hs-var">appPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Pat (GhcPass p)
</span><a href="#local-6989586621680869394"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; Pat (GhcPass p) -&gt; Located (Pat (GhcPass p))
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869395"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">XParPat (GhcPass p) -&gt; LPat (GhcPass p) -&gt; Pat (GhcPass p)
forall p. XParPat p -&gt; LPat p -&gt; Pat p
</span><a href="GHC.Hs.Pat.html#ParPat"><span class="hs-identifier hs-var">ParPat</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtField
XParPat (GhcPass p)
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var">noExtField</span></a></span><span> </span><span class="annot"><span class="annottext">Located (Pat (GhcPass p))
LPat (GhcPass p)
</span><a href="#local-6989586621680869396"><span class="hs-identifier hs-var">lp</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-829"></span><span>      </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>                </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Located (Pat (GhcPass p))
</span><a href="#local-6989586621680869396"><span class="hs-identifier hs-var">lp</span></a></span><span>
</span><span id="line-830"></span><span>
</span><span id="line-831"></span><span class="hs-comment">{-
************************************************************************
*                                                                      *
        Collecting binders
*                                                                      *
************************************************************************

Get all the binders in some HsBindGroups, IN THE ORDER OF APPEARANCE. eg.

...
where
  (x, y) = ...
  f i j  = ...
  [a, b] = ...

it should return [x, y, f, a, b] (remember, order important).

Note [Collect binders only after renaming]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
These functions should only be used on HsSyn *after* the renamer,
to return a [Name] or [Id].  Before renaming the record punning
and wild-card mechanism makes it hard to know what is bound.
So these functions should not be applied to (HsSyn RdrName)

Note [Unlifted id check in isUnliftedHsBind]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The function isUnliftedHsBind is used to complain if we make a top-level
binding for a variable of unlifted type.

Such a binding is illegal if the top-level binding would be unlifted;
but also if the local letrec generated by desugaring AbsBinds would be.
E.g.
      f :: Num a =&gt; (# a, a #)
      g :: Num a =&gt; a -&gt; a
      f = ...g...
      g = ...g...

The top-level bindings for f,g are not unlifted (because of the Num a =&gt;),
but the local, recursive, monomorphic bindings are:

      t = /\a \(d:Num a).
         letrec fm :: (# a, a #) = ...g...
                gm :: a -&gt; a = ...f...
         in (fm, gm)

Here the binding for 'fm' is illegal.  So generally we check the abe_mono types.

BUT we have a special case when abs_sig is true;
  see Note [The abs_sig field of AbsBinds] in GHC.Hs.Binds
-}</span><span>
</span><span id="line-881"></span><span>
</span><span id="line-882"></span><span class="hs-comment">----------------- Bindings --------------------------</span><span>
</span><span id="line-883"></span><span>
</span><span id="line-884"></span><span class="hs-comment">-- | Should we treat this as an unlifted bind? This will be true for any</span><span>
</span><span id="line-885"></span><span class="hs-comment">-- bind that binds an unlifted variable, but we must be careful around</span><span>
</span><span id="line-886"></span><span class="hs-comment">-- AbsBinds. See Note [Unlifted id check in isUnliftedHsBind]. For usage</span><span>
</span><span id="line-887"></span><span class="hs-comment">-- information, see Note [Strict binds check] is &quot;GHC.HsToCore.Binds&quot;.</span><span>
</span><span id="line-888"></span><span class="annot"><a href="GHC.Hs.Utils.html#isUnliftedHsBind"><span class="hs-identifier hs-type">isUnliftedHsBind</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#HsBind"><span class="hs-identifier hs-type">HsBind</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>  </span><span class="hs-comment">-- works only over typechecked binds</span><span>
</span><span id="line-889"></span><span id="isUnliftedHsBind"><span class="annot"><span class="annottext">isUnliftedHsBind :: HsBind GhcTc -&gt; Bool
</span><a href="GHC.Hs.Utils.html#isUnliftedHsBind"><span class="hs-identifier hs-var hs-var">isUnliftedHsBind</span></a></span></span><span> </span><span id="local-6989586621680869393"><span class="annot"><span class="annottext">HsBind GhcTc
</span><a href="#local-6989586621680869393"><span class="hs-identifier hs-var">bind</span></a></span></span><span>
</span><span id="line-890"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#AbsBinds"><span class="hs-identifier hs-type">AbsBinds</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">abs_exports :: forall idL idR. HsBindLR idL idR -&gt; [ABExport idL]
</span><a href="GHC.Hs.Binds.html#abs_exports"><span class="hs-identifier hs-var">abs_exports</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869390"><span class="annot"><span class="annottext">[ABExport GhcTc]
</span><a href="#local-6989586621680869390"><span class="hs-identifier hs-var">exports</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">abs_sig :: forall id1 id2. HsBindLR id1 id2 -&gt; Bool
</span><a href="GHC.Hs.Binds.html#abs_sig"><span class="hs-identifier hs-var">abs_sig</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869388"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680869388"><span class="hs-identifier hs-var">has_sig</span></a></span></span><span> </span><span class="hs-special">}</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">HsBind GhcTc
</span><a href="#local-6989586621680869393"><span class="hs-identifier hs-var">bind</span></a></span><span>
</span><span id="line-891"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680869388"><span class="hs-identifier hs-var">has_sig</span></a></span><span>
</span><span id="line-892"></span><span>    </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">(ABExport GhcTc -&gt; Bool) -&gt; [ABExport GhcTc] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; (a -&gt; Bool) -&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#any"><span class="hs-identifier hs-var">any</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Id -&gt; Bool
</span><a href="#local-6989586621680869387"><span class="hs-identifier hs-var">is_unlifted_id</span></a></span><span> </span><span class="annot"><span class="annottext">(Id -&gt; Bool) -&gt; (ABExport GhcTc -&gt; Id) -&gt; ABExport GhcTc -&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">ABExport GhcTc -&gt; Id
forall p. ABExport p -&gt; IdP p
</span><a href="GHC.Hs.Binds.html#abe_poly"><span class="hs-identifier hs-var hs-var">abe_poly</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[ABExport GhcTc]
</span><a href="#local-6989586621680869390"><span class="hs-identifier hs-var">exports</span></a></span><span>
</span><span id="line-893"></span><span>    </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">(ABExport GhcTc -&gt; Bool) -&gt; [ABExport GhcTc] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; (a -&gt; Bool) -&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#any"><span class="hs-identifier hs-var">any</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Id -&gt; Bool
</span><a href="#local-6989586621680869387"><span class="hs-identifier hs-var">is_unlifted_id</span></a></span><span> </span><span class="annot"><span class="annottext">(Id -&gt; Bool) -&gt; (ABExport GhcTc -&gt; Id) -&gt; ABExport GhcTc -&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">ABExport GhcTc -&gt; Id
forall p. ABExport p -&gt; IdP p
</span><a href="GHC.Hs.Binds.html#abe_mono"><span class="hs-identifier hs-var hs-var">abe_mono</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[ABExport GhcTc]
</span><a href="#local-6989586621680869390"><span class="hs-identifier hs-var">exports</span></a></span><span>
</span><span id="line-894"></span><span>    </span><span class="hs-comment">-- If has_sig is True we wil never generate a binding for abe_mono,</span><span>
</span><span id="line-895"></span><span>    </span><span class="hs-comment">-- so we don't need to worry about it being unlifted. The abe_poly</span><span>
</span><span id="line-896"></span><span>    </span><span class="hs-comment">-- binding might not be: e.g. forall a. Num a =&gt; (# a, a #)</span><span>
</span><span id="line-897"></span><span>
</span><span id="line-898"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>
</span><span id="line-899"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Id -&gt; Bool) -&gt; [Id] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; (a -&gt; Bool) -&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#any"><span class="hs-identifier hs-var">any</span></a></span><span> </span><span class="annot"><span class="annottext">Id -&gt; Bool
</span><a href="#local-6989586621680869387"><span class="hs-identifier hs-var">is_unlifted_id</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsBind GhcTc -&gt; [IdP GhcTc]
forall p idR. CollectPass p =&gt; HsBindLR p idR -&gt; [IdP p]
</span><a href="GHC.Hs.Utils.html#collectHsBindBinders"><span class="hs-identifier hs-var">collectHsBindBinders</span></a></span><span> </span><span class="annot"><span class="annottext">HsBind GhcTc
</span><a href="#local-6989586621680869393"><span class="hs-identifier hs-var">bind</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-900"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-901"></span><span>    </span><span id="local-6989586621680869387"><span class="annot"><span class="annottext">is_unlifted_id :: Id -&gt; Bool
</span><a href="#local-6989586621680869387"><span class="hs-identifier hs-var hs-var">is_unlifted_id</span></a></span></span><span> </span><span id="local-6989586621680869382"><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680869382"><span class="hs-identifier hs-var">id</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HasDebugCallStack =&gt; Type -&gt; Bool
Type -&gt; Bool
</span><a href="GHC.Core.Type.html#isUnliftedType"><span class="hs-identifier hs-var">isUnliftedType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Id -&gt; Type
</span><a href="GHC.Types.Id.html#idType"><span class="hs-identifier hs-var">idType</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680869382"><span class="hs-identifier hs-var">id</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-902"></span><span>
</span><span id="line-903"></span><span class="hs-comment">-- | Is a binding a strict variable or pattern bind (e.g. @!x = ...@)?</span><span>
</span><span id="line-904"></span><span class="annot"><a href="GHC.Hs.Utils.html#isBangedHsBind"><span class="hs-identifier hs-type">isBangedHsBind</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#HsBind"><span class="hs-identifier hs-type">HsBind</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-905"></span><span id="isBangedHsBind"><span class="annot"><span class="annottext">isBangedHsBind :: HsBind GhcTc -&gt; Bool
</span><a href="GHC.Hs.Utils.html#isBangedHsBind"><span class="hs-identifier hs-var hs-var">isBangedHsBind</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#AbsBinds"><span class="hs-identifier hs-type">AbsBinds</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">abs_binds :: forall idL idR. HsBindLR idL idR -&gt; LHsBinds idL
</span><a href="GHC.Hs.Binds.html#abs_binds"><span class="hs-identifier hs-var">abs_binds</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869378"><span class="annot"><span class="annottext">LHsBinds GhcTc
</span><a href="#local-6989586621680869378"><span class="hs-identifier hs-var">binds</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-906"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(GenLocated SrcSpan (HsBind GhcTc) -&gt; Bool)
-&gt; LHsBinds GhcTc -&gt; Bool
forall a. (a -&gt; Bool) -&gt; Bag a -&gt; Bool
</span><a href="GHC.Data.Bag.html#anyBag"><span class="hs-identifier hs-var">anyBag</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsBind GhcTc -&gt; Bool
</span><a href="GHC.Hs.Utils.html#isBangedHsBind"><span class="hs-identifier hs-var">isBangedHsBind</span></a></span><span> </span><span class="annot"><span class="annottext">(HsBind GhcTc -&gt; Bool)
-&gt; (GenLocated SrcSpan (HsBind GhcTc) -&gt; HsBind GhcTc)
-&gt; GenLocated SrcSpan (HsBind GhcTc)
-&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">GenLocated SrcSpan (HsBind GhcTc) -&gt; HsBind GhcTc
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">LHsBinds GhcTc
</span><a href="#local-6989586621680869378"><span class="hs-identifier hs-var">binds</span></a></span><span>
</span><span id="line-907"></span><span class="annot"><a href="GHC.Hs.Utils.html#isBangedHsBind"><span class="hs-identifier hs-var">isBangedHsBind</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#FunBind"><span class="hs-identifier hs-type">FunBind</span></a></span><span> </span><span class="hs-special">{</span><span class="annot"><span class="annottext">fun_matches :: forall idL idR. HsBindLR idL idR -&gt; MatchGroup idR (LHsExpr idR)
</span><a href="GHC.Hs.Binds.html#fun_matches"><span class="hs-identifier hs-var">fun_matches</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869376"><span class="annot"><span class="annottext">MatchGroup GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621680869376"><span class="hs-identifier hs-var">matches</span></a></span></span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-908"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869375"><span class="annot"><span class="annottext">Match GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621680869375"><span class="hs-identifier hs-var">match</span></a></span></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">GenLocated SrcSpan [LMatch GhcTc (LHsExpr GhcTc)]
-&gt; [LMatch GhcTc (LHsExpr GhcTc)]
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span> </span><span class="annot"><span class="annottext">(GenLocated SrcSpan [LMatch GhcTc (LHsExpr GhcTc)]
 -&gt; [LMatch GhcTc (LHsExpr GhcTc)])
-&gt; GenLocated SrcSpan [LMatch GhcTc (LHsExpr GhcTc)]
-&gt; [LMatch GhcTc (LHsExpr GhcTc)]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">MatchGroup GhcTc (LHsExpr GhcTc)
-&gt; GenLocated SrcSpan [LMatch GhcTc (LHsExpr GhcTc)]
forall p body. MatchGroup p body -&gt; Located [LMatch p body]
</span><a href="GHC.Hs.Expr.html#mg_alts"><span class="hs-identifier hs-var hs-var">mg_alts</span></a></span><span> </span><span class="annot"><span class="annottext">MatchGroup GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621680869376"><span class="hs-identifier hs-var">matches</span></a></span><span>
</span><span id="line-909"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#FunRhs"><span class="hs-identifier hs-type">FunRhs</span></a></span><span class="hs-special">{</span><span class="annot"><span class="annottext">mc_strictness :: forall p. HsMatchContext p -&gt; SrcStrictness
</span><a href="GHC.Hs.Expr.html#mc_strictness"><span class="hs-identifier hs-var">mc_strictness</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SrcStrictness
</span><a href="GHC.Core.DataCon.html#SrcStrict"><span class="hs-identifier hs-var">SrcStrict</span></a></span><span class="hs-special">}</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Match GhcTc (LHsExpr GhcTc) -&gt; HsMatchContext (NoGhcTc GhcTc)
forall p body. Match p body -&gt; HsMatchContext (NoGhcTc p)
</span><a href="GHC.Hs.Expr.html#m_ctxt"><span class="hs-identifier hs-var hs-var">m_ctxt</span></a></span><span> </span><span class="annot"><span class="annottext">Match GhcTc (LHsExpr GhcTc)
</span><a href="#local-6989586621680869375"><span class="hs-identifier hs-var">match</span></a></span><span>
</span><span id="line-910"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>
</span><span id="line-911"></span><span class="annot"><a href="GHC.Hs.Utils.html#isBangedHsBind"><span class="hs-identifier hs-var">isBangedHsBind</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#PatBind"><span class="hs-identifier hs-type">PatBind</span></a></span><span> </span><span class="hs-special">{</span><span class="annot"><span class="annottext">pat_lhs :: forall idL idR. HsBindLR idL idR -&gt; LPat idL
</span><a href="GHC.Hs.Binds.html#pat_lhs"><span class="hs-identifier hs-var">pat_lhs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869371"><span class="annot"><span class="annottext">LPat GhcTc
</span><a href="#local-6989586621680869371"><span class="hs-identifier hs-var">pat</span></a></span></span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-912"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LPat GhcTc -&gt; Bool
forall (p :: Pass). LPat (GhcPass p) -&gt; Bool
</span><a href="GHC.Hs.Pat.html#isBangedLPat"><span class="hs-identifier hs-var">isBangedLPat</span></a></span><span> </span><span class="annot"><span class="annottext">LPat GhcTc
</span><a href="#local-6989586621680869371"><span class="hs-identifier hs-var">pat</span></a></span><span>
</span><span id="line-913"></span><span class="annot"><a href="GHC.Hs.Utils.html#isBangedHsBind"><span class="hs-identifier hs-var">isBangedHsBind</span></a></span><span> </span><span class="annot"><span class="annottext">HsBind GhcTc
</span><span class="hs-identifier">_</span></span><span>
</span><span id="line-914"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span>
</span><span id="line-915"></span><span>
</span><span id="line-916"></span><span id="local-6989586621680870403"><span id="local-6989586621680870404"><span class="annot"><a href="GHC.Hs.Utils.html#collectLocalBinders"><span class="hs-identifier hs-type">collectLocalBinders</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#CollectPass"><span class="hs-identifier hs-type">CollectPass</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870404"><span class="hs-identifier hs-type">idL</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-917"></span><span>                    </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#HsLocalBindsLR"><span class="hs-identifier hs-type">HsLocalBindsLR</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870404"><span class="hs-identifier hs-type">idL</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870403"><span class="hs-identifier hs-type">idR</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-918"></span><span>                    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870404"><span class="hs-identifier hs-type">idL</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span></span></span><span>
</span><span id="line-919"></span><span id="collectLocalBinders"><span class="annot"><span class="annottext">collectLocalBinders :: forall (idL :: Pass) (idR :: Pass).
CollectPass (GhcPass idL) =&gt;
HsLocalBindsLR (GhcPass idL) (GhcPass idR) -&gt; [IdP (GhcPass idL)]
</span><a href="GHC.Hs.Utils.html#collectLocalBinders"><span class="hs-identifier hs-var hs-var">collectLocalBinders</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#HsValBinds"><span class="hs-identifier hs-type">HsValBinds</span></a></span><span> </span><span class="annot"><span class="annottext">XHsValBinds (GhcPass idL) (GhcPass idR)
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869366"><span class="annot"><span class="annottext">HsValBindsLR (GhcPass idL) (GhcPass idR)
</span><a href="#local-6989586621680869366"><span class="hs-identifier hs-var">binds</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsValBindsLR (GhcPass idL) (GhcPass idR) -&gt; [IdP (GhcPass idL)]
forall (idL :: Pass) (idR :: Pass).
CollectPass (GhcPass idL) =&gt;
HsValBindsLR (GhcPass idL) (GhcPass idR) -&gt; [IdP (GhcPass idL)]
</span><a href="GHC.Hs.Utils.html#collectHsIdBinders"><span class="hs-identifier hs-var">collectHsIdBinders</span></a></span><span> </span><span class="annot"><span class="annottext">HsValBindsLR (GhcPass idL) (GhcPass idR)
</span><a href="#local-6989586621680869366"><span class="hs-identifier hs-var">binds</span></a></span><span>
</span><span id="line-920"></span><span>                                         </span><span class="hs-comment">-- No pattern synonyms here</span><span>
</span><span id="line-921"></span><span class="annot"><a href="GHC.Hs.Utils.html#collectLocalBinders"><span class="hs-identifier hs-var">collectLocalBinders</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#HsIPBinds"><span class="hs-identifier hs-type">HsIPBinds</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-922"></span><span class="annot"><a href="GHC.Hs.Utils.html#collectLocalBinders"><span class="hs-identifier hs-var">collectLocalBinders</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#EmptyLocalBinds"><span class="hs-identifier hs-type">EmptyLocalBinds</span></a></span><span> </span><span class="annot"><span class="annottext">XEmptyLocalBinds (GhcPass idL) (GhcPass idR)
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-923"></span><span>
</span><span id="line-924"></span><span id="local-6989586621680870397"><span id="local-6989586621680870398"><span class="annot"><a href="GHC.Hs.Utils.html#collectHsIdBinders"><span class="hs-identifier hs-type">collectHsIdBinders</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#CollectPass"><span class="hs-identifier hs-type">CollectPass</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870398"><span class="hs-identifier hs-type">idL</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-925"></span><span>                   </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#HsValBindsLR"><span class="hs-identifier hs-type">HsValBindsLR</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870398"><span class="hs-identifier hs-type">idL</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870397"><span class="hs-identifier hs-type">idR</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-926"></span><span>                   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870398"><span class="hs-identifier hs-type">idL</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span></span></span><span>
</span><span id="line-927"></span><span class="hs-comment">-- ^ Collect 'Id' binders only, or 'Id's + pattern synonyms, respectively</span><span>
</span><span id="line-928"></span><span id="collectHsIdBinders"><span class="annot"><span class="annottext">collectHsIdBinders :: forall (idL :: Pass) (idR :: Pass).
CollectPass (GhcPass idL) =&gt;
HsValBindsLR (GhcPass idL) (GhcPass idR) -&gt; [IdP (GhcPass idL)]
</span><a href="GHC.Hs.Utils.html#collectHsIdBinders"><span class="hs-identifier hs-var hs-var">collectHsIdBinders</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
-&gt; HsValBindsLR (GhcPass idL) (GhcPass idR) -&gt; [IdP (GhcPass idL)]
forall (idL :: Pass) (idR :: Pass).
CollectPass (GhcPass idL) =&gt;
Bool
-&gt; HsValBindsLR (GhcPass idL) (GhcPass idR) -&gt; [IdP (GhcPass idL)]
</span><a href="GHC.Hs.Utils.html#collect_hs_val_binders"><span class="hs-identifier hs-var">collect_hs_val_binders</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>
</span><span id="line-929"></span><span>
</span><span id="line-930"></span><span id="local-6989586621680869359"><span id="local-6989586621680869360"><span class="annot"><a href="GHC.Hs.Utils.html#collectHsValBinders"><span class="hs-identifier hs-type">collectHsValBinders</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#CollectPass"><span class="hs-identifier hs-type">CollectPass</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680869360"><span class="hs-identifier hs-type">idL</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-931"></span><span>                    </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#HsValBindsLR"><span class="hs-identifier hs-type">HsValBindsLR</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680869360"><span class="hs-identifier hs-type">idL</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680869359"><span class="hs-identifier hs-type">idR</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-932"></span><span>                    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680869360"><span class="hs-identifier hs-type">idL</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span></span></span><span>
</span><span id="line-933"></span><span id="collectHsValBinders"><span class="annot"><span class="annottext">collectHsValBinders :: forall (idL :: Pass) (idR :: Pass).
CollectPass (GhcPass idL) =&gt;
HsValBindsLR (GhcPass idL) (GhcPass idR) -&gt; [IdP (GhcPass idL)]
</span><a href="GHC.Hs.Utils.html#collectHsValBinders"><span class="hs-identifier hs-var hs-var">collectHsValBinders</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
-&gt; HsValBindsLR (GhcPass idL) (GhcPass idR) -&gt; [IdP (GhcPass idL)]
forall (idL :: Pass) (idR :: Pass).
CollectPass (GhcPass idL) =&gt;
Bool
-&gt; HsValBindsLR (GhcPass idL) (GhcPass idR) -&gt; [IdP (GhcPass idL)]
</span><a href="GHC.Hs.Utils.html#collect_hs_val_binders"><span class="hs-identifier hs-var">collect_hs_val_binders</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span>
</span><span id="line-934"></span><span>
</span><span id="line-935"></span><span id="local-6989586621680870419"><span id="local-6989586621680870420"><span class="annot"><a href="GHC.Hs.Utils.html#collectHsBindBinders"><span class="hs-identifier hs-type">collectHsBindBinders</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#CollectPass"><span class="hs-identifier hs-type">CollectPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870420"><span class="hs-identifier hs-type">p</span></a></span><span>
</span><span id="line-936"></span><span>                     </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#HsBindLR"><span class="hs-identifier hs-type">HsBindLR</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870420"><span class="hs-identifier hs-type">p</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870419"><span class="hs-identifier hs-type">idR</span></a></span><span>
</span><span id="line-937"></span><span>                     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870420"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">]</span></span></span><span>
</span><span id="line-938"></span><span class="hs-comment">-- ^ Collect both 'Id's and pattern-synonym binders</span><span>
</span><span id="line-939"></span><span id="collectHsBindBinders"><span class="annot"><span class="annottext">collectHsBindBinders :: forall p idR. CollectPass p =&gt; HsBindLR p idR -&gt; [IdP p]
</span><a href="GHC.Hs.Utils.html#collectHsBindBinders"><span class="hs-identifier hs-var hs-var">collectHsBindBinders</span></a></span></span><span> </span><span id="local-6989586621680869354"><span class="annot"><span class="annottext">HsBindLR p idR
</span><a href="#local-6989586621680869354"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; HsBindLR p idR -&gt; [IdP p] -&gt; [IdP p]
forall p idR.
CollectPass p =&gt;
Bool -&gt; HsBindLR p idR -&gt; [IdP p] -&gt; [IdP p]
</span><a href="GHC.Hs.Utils.html#collect_bind"><span class="hs-identifier hs-var">collect_bind</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="annot"><span class="annottext">HsBindLR p idR
</span><a href="#local-6989586621680869354"><span class="hs-identifier hs-var">b</span></a></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-940"></span><span>
</span><span id="line-941"></span><span id="local-6989586621680870384"><span id="local-6989586621680870385"><span class="annot"><a href="GHC.Hs.Utils.html#collectHsBindsBinders"><span class="hs-identifier hs-type">collectHsBindsBinders</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#CollectPass"><span class="hs-identifier hs-type">CollectPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870385"><span class="hs-identifier hs-type">p</span></a></span><span>
</span><span id="line-942"></span><span>                      </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#LHsBindsLR"><span class="hs-identifier hs-type">LHsBindsLR</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870385"><span class="hs-identifier hs-type">p</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870384"><span class="hs-identifier hs-type">idR</span></a></span><span>
</span><span id="line-943"></span><span>                      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870385"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">]</span></span></span><span>
</span><span id="line-944"></span><span id="collectHsBindsBinders"><span class="annot"><span class="annottext">collectHsBindsBinders :: forall p idR. CollectPass p =&gt; LHsBindsLR p idR -&gt; [IdP p]
</span><a href="GHC.Hs.Utils.html#collectHsBindsBinders"><span class="hs-identifier hs-var hs-var">collectHsBindsBinders</span></a></span></span><span> </span><span id="local-6989586621680869350"><span class="annot"><span class="annottext">LHsBindsLR p idR
</span><a href="#local-6989586621680869350"><span class="hs-identifier hs-var">binds</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; LHsBindsLR p idR -&gt; [IdP p] -&gt; [IdP p]
forall p idR.
CollectPass p =&gt;
Bool -&gt; LHsBindsLR p idR -&gt; [IdP p] -&gt; [IdP p]
</span><a href="GHC.Hs.Utils.html#collect_binds"><span class="hs-identifier hs-var">collect_binds</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="annot"><span class="annottext">LHsBindsLR p idR
</span><a href="#local-6989586621680869350"><span class="hs-identifier hs-var">binds</span></a></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-945"></span><span>
</span><span id="line-946"></span><span id="local-6989586621680870377"><span id="local-6989586621680870378"><span class="annot"><a href="GHC.Hs.Utils.html#collectHsBindListBinders"><span class="hs-identifier hs-type">collectHsBindListBinders</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#CollectPass"><span class="hs-identifier hs-type">CollectPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870378"><span class="hs-identifier hs-type">p</span></a></span><span>
</span><span id="line-947"></span><span>                         </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Binds.html#LHsBindLR"><span class="hs-identifier hs-type">LHsBindLR</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870378"><span class="hs-identifier hs-type">p</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870377"><span class="hs-identifier hs-type">idR</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-948"></span><span>                         </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870378"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">]</span></span></span><span>
</span><span id="line-949"></span><span class="hs-comment">-- ^ Same as 'collectHsBindsBinders', but works over a list of bindings</span><span>
</span><span id="line-950"></span><span id="collectHsBindListBinders"><span class="annot"><span class="annottext">collectHsBindListBinders :: forall p idR. CollectPass p =&gt; [LHsBindLR p idR] -&gt; [IdP p]
</span><a href="GHC.Hs.Utils.html#collectHsBindListBinders"><span class="hs-identifier hs-var hs-var">collectHsBindListBinders</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(GenLocated SrcSpan (HsBindLR p idR) -&gt; [IdP p] -&gt; [IdP p])
-&gt; [IdP p] -&gt; [GenLocated SrcSpan (HsBindLR p idR)] -&gt; [IdP p]
forall (t :: * -&gt; *) a b.
Foldable t =&gt;
(a -&gt; b -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldr"><span class="hs-identifier hs-var">foldr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool -&gt; HsBindLR p idR -&gt; [IdP p] -&gt; [IdP p]
forall p idR.
CollectPass p =&gt;
Bool -&gt; HsBindLR p idR -&gt; [IdP p] -&gt; [IdP p]
</span><a href="GHC.Hs.Utils.html#collect_bind"><span class="hs-identifier hs-var">collect_bind</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="annot"><span class="annottext">(HsBindLR p idR -&gt; [IdP p] -&gt; [IdP p])
-&gt; (GenLocated SrcSpan (HsBindLR p idR) -&gt; HsBindLR p idR)
-&gt; GenLocated SrcSpan (HsBindLR p idR)
-&gt; [IdP p]
-&gt; [IdP p]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">GenLocated SrcSpan (HsBindLR p idR) -&gt; HsBindLR p idR
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-951"></span><span>
</span><span id="line-952"></span><span id="local-6989586621680870392"><span id="local-6989586621680870393"><span class="annot"><a href="GHC.Hs.Utils.html#collect_hs_val_binders"><span class="hs-identifier hs-type">collect_hs_val_binders</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#CollectPass"><span class="hs-identifier hs-type">CollectPass</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870393"><span class="hs-identifier hs-type">idL</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-953"></span><span>                       </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-954"></span><span>                       </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#HsValBindsLR"><span class="hs-identifier hs-type">HsValBindsLR</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870393"><span class="hs-identifier hs-type">idL</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870392"><span class="hs-identifier hs-type">idR</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-955"></span><span>                       </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870393"><span class="hs-identifier hs-type">idL</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span></span></span><span>
</span><span id="line-956"></span><span id="collect_hs_val_binders"><span class="annot"><span class="annottext">collect_hs_val_binders :: forall (idL :: Pass) (idR :: Pass).
CollectPass (GhcPass idL) =&gt;
Bool
-&gt; HsValBindsLR (GhcPass idL) (GhcPass idR) -&gt; [IdP (GhcPass idL)]
</span><a href="GHC.Hs.Utils.html#collect_hs_val_binders"><span class="hs-identifier hs-var hs-var">collect_hs_val_binders</span></a></span></span><span> </span><span id="local-6989586621680869341"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680869341"><span class="hs-identifier hs-var">ps</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#ValBinds"><span class="hs-identifier hs-type">ValBinds</span></a></span><span> </span><span class="annot"><span class="annottext">XValBinds (GhcPass idL) (GhcPass idR)
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869339"><span class="annot"><span class="annottext">LHsBindsLR (GhcPass idL) (GhcPass idR)
</span><a href="#local-6989586621680869339"><span class="hs-identifier hs-var">binds</span></a></span></span><span> </span><span class="annot"><span class="annottext">[LSig (GhcPass idR)]
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
-&gt; LHsBindsLR (GhcPass idL) (GhcPass idR)
-&gt; [IdP (GhcPass idL)]
-&gt; [IdP (GhcPass idL)]
forall p idR.
CollectPass p =&gt;
Bool -&gt; LHsBindsLR p idR -&gt; [IdP p] -&gt; [IdP p]
</span><a href="GHC.Hs.Utils.html#collect_binds"><span class="hs-identifier hs-var">collect_binds</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680869341"><span class="hs-identifier hs-var">ps</span></a></span><span> </span><span class="annot"><span class="annottext">LHsBindsLR (GhcPass idL) (GhcPass idR)
</span><a href="#local-6989586621680869339"><span class="hs-identifier hs-var">binds</span></a></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-957"></span><span class="annot"><a href="GHC.Hs.Utils.html#collect_hs_val_binders"><span class="hs-identifier hs-var">collect_hs_val_binders</span></a></span><span> </span><span id="local-6989586621680869338"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680869338"><span class="hs-identifier hs-var">ps</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#XValBindsLR"><span class="hs-identifier hs-type">XValBindsLR</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#NValBinds"><span class="hs-identifier hs-type">NValBinds</span></a></span><span> </span><span id="local-6989586621680869335"><span class="annot"><span class="annottext">[(RecFlag, LHsBinds (GhcPass idL))]
</span><a href="#local-6989586621680869335"><span class="hs-identifier hs-var">binds</span></a></span></span><span> </span><span class="annot"><span class="annottext">[LSig GhcRn]
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-958"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; [(RecFlag, LHsBinds (GhcPass idL))] -&gt; [IdP (GhcPass idL)]
forall p.
CollectPass p =&gt;
Bool -&gt; [(RecFlag, LHsBinds p)] -&gt; [IdP p]
</span><a href="GHC.Hs.Utils.html#collect_out_binds"><span class="hs-identifier hs-var">collect_out_binds</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680869338"><span class="hs-identifier hs-var">ps</span></a></span><span> </span><span class="annot"><span class="annottext">[(RecFlag, LHsBinds (GhcPass idL))]
</span><a href="#local-6989586621680869335"><span class="hs-identifier hs-var">binds</span></a></span><span>
</span><span id="line-959"></span><span>
</span><span id="line-960"></span><span id="local-6989586621680870365"><span class="annot"><a href="GHC.Hs.Utils.html#collect_out_binds"><span class="hs-identifier hs-type">collect_out_binds</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#CollectPass"><span class="hs-identifier hs-type">CollectPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870365"><span class="hs-identifier hs-type">p</span></a></span><span>
</span><span id="line-961"></span><span>                  </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-962"></span><span>                  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Basic.html#RecFlag"><span class="hs-identifier hs-type">RecFlag</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#LHsBinds"><span class="hs-identifier hs-type">LHsBinds</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870365"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-963"></span><span>                  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870365"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">]</span></span><span>
</span><span id="line-964"></span><span id="collect_out_binds"><span class="annot"><span class="annottext">collect_out_binds :: forall p.
CollectPass p =&gt;
Bool -&gt; [(RecFlag, LHsBinds p)] -&gt; [IdP p]
</span><a href="GHC.Hs.Utils.html#collect_out_binds"><span class="hs-identifier hs-var hs-var">collect_out_binds</span></a></span></span><span> </span><span id="local-6989586621680869330"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680869330"><span class="hs-identifier hs-var">ps</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">((RecFlag, LHsBindsLR p p) -&gt; [IdP p] -&gt; [IdP p])
-&gt; [IdP p] -&gt; [(RecFlag, LHsBindsLR p p)] -&gt; [IdP p]
forall (t :: * -&gt; *) a b.
Foldable t =&gt;
(a -&gt; b -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldr"><span class="hs-identifier hs-var">foldr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool -&gt; LHsBindsLR p p -&gt; [IdP p] -&gt; [IdP p]
forall p idR.
CollectPass p =&gt;
Bool -&gt; LHsBindsLR p idR -&gt; [IdP p] -&gt; [IdP p]
</span><a href="GHC.Hs.Utils.html#collect_binds"><span class="hs-identifier hs-var">collect_binds</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680869330"><span class="hs-identifier hs-var">ps</span></a></span><span> </span><span class="annot"><span class="annottext">(LHsBindsLR p p -&gt; [IdP p] -&gt; [IdP p])
-&gt; ((RecFlag, LHsBindsLR p p) -&gt; LHsBindsLR p p)
-&gt; (RecFlag, LHsBindsLR p p)
-&gt; [IdP p]
-&gt; [IdP p]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(RecFlag, LHsBindsLR p p) -&gt; LHsBindsLR p p
forall a b. (a, b) -&gt; b
</span><a href="../../base/src/Data.Tuple.html#snd"><span class="hs-identifier hs-var">snd</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-965"></span><span>
</span><span id="line-966"></span><span id="local-6989586621680870379"><span id="local-6989586621680870380"><span class="annot"><a href="GHC.Hs.Utils.html#collect_binds"><span class="hs-identifier hs-type">collect_binds</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#CollectPass"><span class="hs-identifier hs-type">CollectPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870380"><span class="hs-identifier hs-type">p</span></a></span><span>
</span><span id="line-967"></span><span>              </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-968"></span><span>              </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#LHsBindsLR"><span class="hs-identifier hs-type">LHsBindsLR</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870380"><span class="hs-identifier hs-type">p</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870379"><span class="hs-identifier hs-type">idR</span></a></span><span>
</span><span id="line-969"></span><span>              </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870380"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-970"></span><span>              </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870380"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">]</span></span></span><span>
</span><span id="line-971"></span><span class="hs-comment">-- ^ Collect 'Id's, or 'Id's + pattern synonyms, depending on boolean flag</span><span>
</span><span id="line-972"></span><span id="collect_binds"><span class="annot"><span class="annottext">collect_binds :: forall p idR.
CollectPass p =&gt;
Bool -&gt; LHsBindsLR p idR -&gt; [IdP p] -&gt; [IdP p]
</span><a href="GHC.Hs.Utils.html#collect_binds"><span class="hs-identifier hs-var hs-var">collect_binds</span></a></span></span><span> </span><span id="local-6989586621680869325"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680869325"><span class="hs-identifier hs-var">ps</span></a></span></span><span> </span><span id="local-6989586621680869324"><span class="annot"><span class="annottext">LHsBindsLR p idR
</span><a href="#local-6989586621680869324"><span class="hs-identifier hs-var">binds</span></a></span></span><span> </span><span id="local-6989586621680869323"><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869323"><span class="hs-identifier hs-var">acc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(GenLocated SrcSpan (HsBindLR p idR) -&gt; [IdP p] -&gt; [IdP p])
-&gt; [IdP p] -&gt; LHsBindsLR p idR -&gt; [IdP p]
forall (t :: * -&gt; *) a b.
Foldable t =&gt;
(a -&gt; b -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldr"><span class="hs-identifier hs-var">foldr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool -&gt; HsBindLR p idR -&gt; [IdP p] -&gt; [IdP p]
forall p idR.
CollectPass p =&gt;
Bool -&gt; HsBindLR p idR -&gt; [IdP p] -&gt; [IdP p]
</span><a href="GHC.Hs.Utils.html#collect_bind"><span class="hs-identifier hs-var">collect_bind</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680869325"><span class="hs-identifier hs-var">ps</span></a></span><span> </span><span class="annot"><span class="annottext">(HsBindLR p idR -&gt; [IdP p] -&gt; [IdP p])
-&gt; (GenLocated SrcSpan (HsBindLR p idR) -&gt; HsBindLR p idR)
-&gt; GenLocated SrcSpan (HsBindLR p idR)
-&gt; [IdP p]
-&gt; [IdP p]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">GenLocated SrcSpan (HsBindLR p idR) -&gt; HsBindLR p idR
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869323"><span class="hs-identifier hs-var">acc</span></a></span><span> </span><span class="annot"><span class="annottext">LHsBindsLR p idR
</span><a href="#local-6989586621680869324"><span class="hs-identifier hs-var">binds</span></a></span><span>
</span><span id="line-973"></span><span>
</span><span id="line-974"></span><span id="local-6989586621680870386"><span id="local-6989586621680870387"><span class="annot"><a href="GHC.Hs.Utils.html#collect_bind"><span class="hs-identifier hs-type">collect_bind</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#CollectPass"><span class="hs-identifier hs-type">CollectPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870387"><span class="hs-identifier hs-type">p</span></a></span><span>
</span><span id="line-975"></span><span>             </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-976"></span><span>             </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#HsBindLR"><span class="hs-identifier hs-type">HsBindLR</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870387"><span class="hs-identifier hs-type">p</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870386"><span class="hs-identifier hs-type">idR</span></a></span><span>
</span><span id="line-977"></span><span>             </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870387"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-978"></span><span>             </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870387"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">]</span></span></span><span>
</span><span id="line-979"></span><span id="collect_bind"><span class="annot"><span class="annottext">collect_bind :: forall p idR.
CollectPass p =&gt;
Bool -&gt; HsBindLR p idR -&gt; [IdP p] -&gt; [IdP p]
</span><a href="GHC.Hs.Utils.html#collect_bind"><span class="hs-identifier hs-var hs-var">collect_bind</span></a></span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#PatBind"><span class="hs-identifier hs-type">PatBind</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">pat_lhs :: forall idL idR. HsBindLR idL idR -&gt; LPat idL
</span><a href="GHC.Hs.Binds.html#pat_lhs"><span class="hs-identifier hs-var">pat_lhs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869315"><span class="annot"><span class="annottext">XRec p Pat
</span><a href="#local-6989586621680869315"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>           </span><span id="local-6989586621680869314"><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869314"><span class="hs-identifier hs-var">acc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XRec p Pat -&gt; [IdP p] -&gt; [IdP p]
forall pass.
CollectPass pass =&gt;
LPat pass -&gt; [IdP pass] -&gt; [IdP pass]
</span><a href="GHC.Hs.Utils.html#collect_lpat"><span class="hs-identifier hs-var">collect_lpat</span></a></span><span> </span><span class="annot"><span class="annottext">XRec p Pat
</span><a href="#local-6989586621680869315"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869314"><span class="hs-identifier hs-var">acc</span></a></span><span>
</span><span id="line-980"></span><span class="annot"><a href="GHC.Hs.Utils.html#collect_bind"><span class="hs-identifier hs-var">collect_bind</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#FunBind"><span class="hs-identifier hs-type">FunBind</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">fun_id :: forall idL idR. HsBindLR idL idR -&gt; Located (IdP idL)
</span><a href="GHC.Hs.Binds.html#fun_id"><span class="hs-identifier hs-var">fun_id</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869312"><span class="annot"><span class="annottext">IdP p
</span><a href="#local-6989586621680869312"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>        </span><span id="local-6989586621680869311"><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869311"><span class="hs-identifier hs-var">acc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IdP p
</span><a href="#local-6989586621680869312"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">IdP p -&gt; [IdP p] -&gt; [IdP p]
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span> </span><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869311"><span class="hs-identifier hs-var">acc</span></a></span><span>
</span><span id="line-981"></span><span class="annot"><a href="GHC.Hs.Utils.html#collect_bind"><span class="hs-identifier hs-var">collect_bind</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#VarBind"><span class="hs-identifier hs-type">VarBind</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">var_id :: forall idL idR. HsBindLR idL idR -&gt; IdP idL
</span><a href="GHC.Hs.Binds.html#var_id"><span class="hs-identifier hs-var">var_id</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869310"><span class="annot"><span class="annottext">IdP p
</span><a href="#local-6989586621680869310"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>            </span><span id="local-6989586621680869309"><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869309"><span class="hs-identifier hs-var">acc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IdP p
</span><a href="#local-6989586621680869310"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">IdP p -&gt; [IdP p] -&gt; [IdP p]
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span> </span><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869309"><span class="hs-identifier hs-var">acc</span></a></span><span>
</span><span id="line-982"></span><span class="annot"><a href="GHC.Hs.Utils.html#collect_bind"><span class="hs-identifier hs-var">collect_bind</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#AbsBinds"><span class="hs-identifier hs-type">AbsBinds</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">abs_exports :: forall idL idR. HsBindLR idL idR -&gt; [ABExport idL]
</span><a href="GHC.Hs.Binds.html#abs_exports"><span class="hs-identifier hs-var">abs_exports</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869308"><span class="annot"><span class="annottext">[ABExport p]
</span><a href="#local-6989586621680869308"><span class="hs-identifier hs-var">dbinds</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span id="local-6989586621680869307"><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869307"><span class="hs-identifier hs-var">acc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(ABExport p -&gt; IdP p) -&gt; [ABExport p] -&gt; [IdP p]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">ABExport p -&gt; IdP p
forall p. ABExport p -&gt; IdP p
</span><a href="GHC.Hs.Binds.html#abe_poly"><span class="hs-identifier hs-var hs-var">abe_poly</span></a></span><span> </span><span class="annot"><span class="annottext">[ABExport p]
</span><a href="#local-6989586621680869308"><span class="hs-identifier hs-var">dbinds</span></a></span><span> </span><span class="annot"><span class="annottext">[IdP p] -&gt; [IdP p] -&gt; [IdP p]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869307"><span class="hs-identifier hs-var">acc</span></a></span><span>
</span><span id="line-983"></span><span>        </span><span class="hs-comment">-- I don't think we want the binders from the abe_binds</span><span>
</span><span id="line-984"></span><span>
</span><span id="line-985"></span><span>        </span><span class="hs-comment">-- binding (hence see AbsBinds) is in zonking in GHC.Tc.Utils.Zonk</span><span>
</span><span id="line-986"></span><span class="annot"><a href="GHC.Hs.Utils.html#collect_bind"><span class="hs-identifier hs-var">collect_bind</span></a></span><span> </span><span id="local-6989586621680869306"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680869306"><span class="hs-identifier hs-var">omitPatSyn</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#PatSynBind"><span class="hs-identifier hs-type">PatSynBind</span></a></span><span> </span><span class="annot"><span class="annottext">XPatSynBind p idR
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#PSB"><span class="hs-identifier hs-type">PSB</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">psb_id :: forall idL idR. PatSynBind idL idR -&gt; Located (IdP idL)
</span><a href="GHC.Hs.Binds.html#psb_id"><span class="hs-identifier hs-var">psb_id</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869305"><span class="annot"><span class="annottext">IdP p
</span><a href="#local-6989586621680869305"><span class="hs-identifier hs-var">ps</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span id="local-6989586621680869304"><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869304"><span class="hs-identifier hs-var">acc</span></a></span></span><span>
</span><span id="line-987"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680869306"><span class="hs-identifier hs-var">omitPatSyn</span></a></span><span>                  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869304"><span class="hs-identifier hs-var">acc</span></a></span><span>
</span><span id="line-988"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>                   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IdP p
</span><a href="#local-6989586621680869305"><span class="hs-identifier hs-var">ps</span></a></span><span> </span><span class="annot"><span class="annottext">IdP p -&gt; [IdP p] -&gt; [IdP p]
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span> </span><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869304"><span class="hs-identifier hs-var">acc</span></a></span><span>
</span><span id="line-989"></span><span class="annot"><a href="GHC.Hs.Utils.html#collect_bind"><span class="hs-identifier hs-var">collect_bind</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#PatSynBind"><span class="hs-identifier hs-type">PatSynBind</span></a></span><span> </span><span class="annot"><span class="annottext">XPatSynBind p idR
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#XPatSynBind"><span class="hs-identifier hs-type">XPatSynBind</span></a></span><span> </span><span class="annot"><span class="annottext">XXPatSynBind p idR
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span id="local-6989586621680869302"><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869302"><span class="hs-identifier hs-var">acc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869302"><span class="hs-identifier hs-var">acc</span></a></span><span>
</span><span id="line-990"></span><span class="annot"><a href="GHC.Hs.Utils.html#collect_bind"><span class="hs-identifier hs-var">collect_bind</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#XHsBindsLR"><span class="hs-identifier hs-type">XHsBindsLR</span></a></span><span> </span><span class="annot"><span class="annottext">XXHsBindsLR p idR
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621680869300"><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869300"><span class="hs-identifier hs-var">acc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869300"><span class="hs-identifier hs-var">acc</span></a></span><span>
</span><span id="line-991"></span><span>
</span><span id="line-992"></span><span id="local-6989586621680870346"><span id="local-6989586621680870347"><span class="annot"><a href="GHC.Hs.Utils.html#collectMethodBinders"><span class="hs-identifier hs-type">collectMethodBinders</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#LHsBindsLR"><span class="hs-identifier hs-type">LHsBindsLR</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870347"><span class="hs-identifier hs-type">idL</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870346"><span class="hs-identifier hs-type">idR</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870347"><span class="hs-identifier hs-type">idL</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span></span></span><span>
</span><span id="line-993"></span><span class="hs-comment">-- ^ Used exclusively for the bindings of an instance decl which are all</span><span>
</span><span id="line-994"></span><span class="hs-comment">-- 'FunBinds'</span><span>
</span><span id="line-995"></span><span id="collectMethodBinders"><span class="annot"><span class="annottext">collectMethodBinders :: forall idL idR. LHsBindsLR idL idR -&gt; [Located (IdP idL)]
</span><a href="GHC.Hs.Utils.html#collectMethodBinders"><span class="hs-identifier hs-var hs-var">collectMethodBinders</span></a></span></span><span> </span><span id="local-6989586621680869298"><span class="annot"><span class="annottext">LHsBindsLR idL idR
</span><a href="#local-6989586621680869298"><span class="hs-identifier hs-var">binds</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(GenLocated SrcSpan (HsBindLR idL idR)
 -&gt; [Located (IdP idL)] -&gt; [Located (IdP idL)])
-&gt; [Located (IdP idL)] -&gt; LHsBindsLR idL idR -&gt; [Located (IdP idL)]
forall (t :: * -&gt; *) a b.
Foldable t =&gt;
(a -&gt; b -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldr"><span class="hs-identifier hs-var">foldr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsBindLR idL idR -&gt; [Located (IdP idL)] -&gt; [Located (IdP idL)]
forall {idL} {idR}.
HsBindLR idL idR -&gt; [Located (IdP idL)] -&gt; [Located (IdP idL)]
</span><a href="#local-6989586621680869297"><span class="hs-identifier hs-var">get</span></a></span><span> </span><span class="annot"><span class="annottext">(HsBindLR idL idR -&gt; [Located (IdP idL)] -&gt; [Located (IdP idL)])
-&gt; (GenLocated SrcSpan (HsBindLR idL idR) -&gt; HsBindLR idL idR)
-&gt; GenLocated SrcSpan (HsBindLR idL idR)
-&gt; [Located (IdP idL)]
-&gt; [Located (IdP idL)]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">GenLocated SrcSpan (HsBindLR idL idR) -&gt; HsBindLR idL idR
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="annot"><span class="annottext">LHsBindsLR idL idR
</span><a href="#local-6989586621680869298"><span class="hs-identifier hs-var">binds</span></a></span><span>
</span><span id="line-996"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-997"></span><span>    </span><span id="local-6989586621680869297"><span class="annot"><span class="annottext">get :: HsBindLR idL idR -&gt; [Located (IdP idL)] -&gt; [Located (IdP idL)]
</span><a href="#local-6989586621680869297"><span class="hs-identifier hs-var hs-var">get</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#FunBind"><span class="hs-identifier hs-type">FunBind</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">fun_id :: forall idL idR. HsBindLR idL idR -&gt; Located (IdP idL)
</span><a href="GHC.Hs.Binds.html#fun_id"><span class="hs-identifier hs-var">fun_id</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869296"><span class="annot"><span class="annottext">Located (IdP idL)
</span><a href="#local-6989586621680869296"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span id="local-6989586621680869295"><span class="annot"><span class="annottext">[Located (IdP idL)]
</span><a href="#local-6989586621680869295"><span class="hs-identifier hs-var">fs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Located (IdP idL)
</span><a href="#local-6989586621680869296"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">Located (IdP idL) -&gt; [Located (IdP idL)] -&gt; [Located (IdP idL)]
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span> </span><span class="annot"><span class="annottext">[Located (IdP idL)]
</span><a href="#local-6989586621680869295"><span class="hs-identifier hs-var">fs</span></a></span><span>
</span><span id="line-998"></span><span>    </span><span class="annot"><a href="#local-6989586621680869297"><span class="hs-identifier hs-var">get</span></a></span><span> </span><span class="annot"><span class="annottext">HsBindLR idL idR
</span><span class="hs-identifier">_</span></span><span>                        </span><span id="local-6989586621680869294"><span class="annot"><span class="annottext">[Located (IdP idL)]
</span><a href="#local-6989586621680869294"><span class="hs-identifier hs-var">fs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Located (IdP idL)]
</span><a href="#local-6989586621680869294"><span class="hs-identifier hs-var">fs</span></a></span><span>
</span><span id="line-999"></span><span>       </span><span class="hs-comment">-- Someone else complains about non-FunBinds</span><span>
</span><span id="line-1000"></span><span>
</span><span id="line-1001"></span><span class="hs-comment">----------------- Statements --------------------------</span><span>
</span><span id="line-1002"></span><span id="local-6989586621680870339"><span id="local-6989586621680870340"><span id="local-6989586621680870341"><span class="annot"><a href="GHC.Hs.Utils.html#collectLStmtsBinders"><span class="hs-identifier hs-type">collectLStmtsBinders</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Utils.html#CollectPass"><span class="hs-identifier hs-type">CollectPass</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870341"><span class="hs-identifier hs-type">idL</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-1003"></span><span>                     </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#LStmtLR"><span class="hs-identifier hs-type">LStmtLR</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870341"><span class="hs-identifier hs-type">idL</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870340"><span class="hs-identifier hs-type">idR</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="#local-6989586621680870339"><span class="hs-identifier hs-type">body</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-1004"></span><span>                     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870341"><span class="hs-identifier hs-type">idL</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span></span></span></span><span>
</span><span id="line-1005"></span><span id="collectLStmtsBinders"><span class="annot"><span class="annottext">collectLStmtsBinders :: forall (idL :: Pass) (idR :: Pass) body.
CollectPass (GhcPass idL) =&gt;
[LStmtLR (GhcPass idL) (GhcPass idR) body] -&gt; [IdP (GhcPass idL)]
</span><a href="GHC.Hs.Utils.html#collectLStmtsBinders"><span class="hs-identifier hs-var hs-var">collectLStmtsBinders</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(GenLocated SrcSpan (StmtLR (GhcPass idL) (GhcPass idR) body)
 -&gt; [IdGhcP idL])
-&gt; [GenLocated SrcSpan (StmtLR (GhcPass idL) (GhcPass idR) body)]
-&gt; [IdGhcP idL]
forall (t :: * -&gt; *) a b. Foldable t =&gt; (a -&gt; [b]) -&gt; t a -&gt; [b]
</span><a href="../../base/src/Data.Foldable.html#concatMap"><span class="hs-identifier hs-var">concatMap</span></a></span><span> </span><span class="annot"><span class="annottext">GenLocated SrcSpan (StmtLR (GhcPass idL) (GhcPass idR) body)
-&gt; [IdGhcP idL]
forall (idL :: Pass) (idR :: Pass) body.
CollectPass (GhcPass idL) =&gt;
LStmtLR (GhcPass idL) (GhcPass idR) body -&gt; [IdP (GhcPass idL)]
</span><a href="GHC.Hs.Utils.html#collectLStmtBinders"><span class="hs-identifier hs-var">collectLStmtBinders</span></a></span><span>
</span><span id="line-1006"></span><span>
</span><span id="line-1007"></span><span id="local-6989586621680870327"><span id="local-6989586621680870328"><span id="local-6989586621680870329"><span class="annot"><a href="GHC.Hs.Utils.html#collectStmtsBinders"><span class="hs-identifier hs-type">collectStmtsBinders</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Utils.html#CollectPass"><span class="hs-identifier hs-type">CollectPass</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870329"><span class="hs-identifier hs-type">idL</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-1008"></span><span>                    </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#StmtLR"><span class="hs-identifier hs-type">StmtLR</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870329"><span class="hs-identifier hs-type">idL</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870328"><span class="hs-identifier hs-type">idR</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="#local-6989586621680870327"><span class="hs-identifier hs-type">body</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-1009"></span><span>                    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870329"><span class="hs-identifier hs-type">idL</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span></span></span></span><span>
</span><span id="line-1010"></span><span id="collectStmtsBinders"><span class="annot"><span class="annottext">collectStmtsBinders :: forall (idL :: Pass) (idR :: Pass) body.
CollectPass (GhcPass idL) =&gt;
[StmtLR (GhcPass idL) (GhcPass idR) body] -&gt; [IdP (GhcPass idL)]
</span><a href="GHC.Hs.Utils.html#collectStmtsBinders"><span class="hs-identifier hs-var hs-var">collectStmtsBinders</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(StmtLR (GhcPass idL) (GhcPass idR) body -&gt; [IdGhcP idL])
-&gt; [StmtLR (GhcPass idL) (GhcPass idR) body] -&gt; [IdGhcP idL]
forall (t :: * -&gt; *) a b. Foldable t =&gt; (a -&gt; [b]) -&gt; t a -&gt; [b]
</span><a href="../../base/src/Data.Foldable.html#concatMap"><span class="hs-identifier hs-var">concatMap</span></a></span><span> </span><span class="annot"><span class="annottext">StmtLR (GhcPass idL) (GhcPass idR) body -&gt; [IdGhcP idL]
forall (idL :: Pass) (idR :: Pass) body.
CollectPass (GhcPass idL) =&gt;
StmtLR (GhcPass idL) (GhcPass idR) body -&gt; [IdP (GhcPass idL)]
</span><a href="GHC.Hs.Utils.html#collectStmtBinders"><span class="hs-identifier hs-var">collectStmtBinders</span></a></span><span>
</span><span id="line-1011"></span><span>
</span><span id="line-1012"></span><span id="local-6989586621680870330"><span id="local-6989586621680870331"><span id="local-6989586621680870332"><span class="annot"><a href="GHC.Hs.Utils.html#collectLStmtBinders"><span class="hs-identifier hs-type">collectLStmtBinders</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Utils.html#CollectPass"><span class="hs-identifier hs-type">CollectPass</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870332"><span class="hs-identifier hs-type">idL</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-1013"></span><span>                    </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#LStmtLR"><span class="hs-identifier hs-type">LStmtLR</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870332"><span class="hs-identifier hs-type">idL</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870331"><span class="hs-identifier hs-type">idR</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="#local-6989586621680870330"><span class="hs-identifier hs-type">body</span></a></span><span>
</span><span id="line-1014"></span><span>                    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870332"><span class="hs-identifier hs-type">idL</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span></span></span></span><span>
</span><span id="line-1015"></span><span id="collectLStmtBinders"><span class="annot"><span class="annottext">collectLStmtBinders :: forall (idL :: Pass) (idR :: Pass) body.
CollectPass (GhcPass idL) =&gt;
LStmtLR (GhcPass idL) (GhcPass idR) body -&gt; [IdP (GhcPass idL)]
</span><a href="GHC.Hs.Utils.html#collectLStmtBinders"><span class="hs-identifier hs-var hs-var">collectLStmtBinders</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">StmtLR (GhcPass idL) (GhcPass idR) body -&gt; [IdGhcP idL]
forall (idL :: Pass) (idR :: Pass) body.
CollectPass (GhcPass idL) =&gt;
StmtLR (GhcPass idL) (GhcPass idR) body -&gt; [IdP (GhcPass idL)]
</span><a href="GHC.Hs.Utils.html#collectStmtBinders"><span class="hs-identifier hs-var">collectStmtBinders</span></a></span><span> </span><span class="annot"><span class="annottext">(StmtLR (GhcPass idL) (GhcPass idR) body -&gt; [IdGhcP idL])
-&gt; (GenLocated SrcSpan (StmtLR (GhcPass idL) (GhcPass idR) body)
    -&gt; StmtLR (GhcPass idL) (GhcPass idR) body)
-&gt; GenLocated SrcSpan (StmtLR (GhcPass idL) (GhcPass idR) body)
-&gt; [IdGhcP idL]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">GenLocated SrcSpan (StmtLR (GhcPass idL) (GhcPass idR) body)
-&gt; StmtLR (GhcPass idL) (GhcPass idR) body
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span>
</span><span id="line-1016"></span><span>
</span><span id="line-1017"></span><span id="local-6989586621680870321"><span id="local-6989586621680870322"><span id="local-6989586621680870323"><span class="annot"><a href="GHC.Hs.Utils.html#collectStmtBinders"><span class="hs-identifier hs-type">collectStmtBinders</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Utils.html#CollectPass"><span class="hs-identifier hs-type">CollectPass</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870323"><span class="hs-identifier hs-type">idL</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-1018"></span><span>                   </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#StmtLR"><span class="hs-identifier hs-type">StmtLR</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870323"><span class="hs-identifier hs-type">idL</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870322"><span class="hs-identifier hs-type">idR</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="#local-6989586621680870321"><span class="hs-identifier hs-type">body</span></a></span><span>
</span><span id="line-1019"></span><span>                   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870323"><span class="hs-identifier hs-type">idL</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span></span></span></span><span>
</span><span id="line-1020"></span><span>  </span><span class="hs-comment">-- Id Binders for a Stmt... [but what about pattern-sig type vars]?</span><span>
</span><span id="line-1021"></span><span id="collectStmtBinders"><span class="annot"><span class="annottext">collectStmtBinders :: forall (idL :: Pass) (idR :: Pass) body.
CollectPass (GhcPass idL) =&gt;
StmtLR (GhcPass idL) (GhcPass idR) body -&gt; [IdP (GhcPass idL)]
</span><a href="GHC.Hs.Utils.html#collectStmtBinders"><span class="hs-identifier hs-var hs-var">collectStmtBinders</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#BindStmt"><span class="hs-identifier hs-type">BindStmt</span></a></span><span> </span><span class="annot"><span class="annottext">XBindStmt (GhcPass idL) (GhcPass idR) body
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869276"><span class="annot"><span class="annottext">LPat (GhcPass idL)
</span><a href="#local-6989586621680869276"><span class="hs-identifier hs-var">pat</span></a></span></span><span> </span><span class="annot"><span class="annottext">body
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LPat (GhcPass idL) -&gt; [IdP (GhcPass idL)]
forall p. CollectPass p =&gt; LPat p -&gt; [IdP p]
</span><a href="GHC.Hs.Utils.html#collectPatBinders"><span class="hs-identifier hs-var">collectPatBinders</span></a></span><span> </span><span class="annot"><span class="annottext">LPat (GhcPass idL)
</span><a href="#local-6989586621680869276"><span class="hs-identifier hs-var">pat</span></a></span><span>
</span><span id="line-1022"></span><span class="annot"><a href="GHC.Hs.Utils.html#collectStmtBinders"><span class="hs-identifier hs-var">collectStmtBinders</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LetStmt"><span class="hs-identifier hs-type">LetStmt</span></a></span><span> </span><span class="annot"><span class="annottext">XLetStmt (GhcPass idL) (GhcPass idR) body
</span><span class="hs-identifier">_</span></span><span>  </span><span id="local-6989586621680869274"><span class="annot"><span class="annottext">LHsLocalBindsLR (GhcPass idL) (GhcPass idR)
</span><a href="#local-6989586621680869274"><span class="hs-identifier hs-var">binds</span></a></span></span><span class="hs-special">)</span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsLocalBindsLR (GhcPass idL) (GhcPass idR) -&gt; [IdP (GhcPass idL)]
forall (idL :: Pass) (idR :: Pass).
CollectPass (GhcPass idL) =&gt;
HsLocalBindsLR (GhcPass idL) (GhcPass idR) -&gt; [IdP (GhcPass idL)]
</span><a href="GHC.Hs.Utils.html#collectLocalBinders"><span class="hs-identifier hs-var">collectLocalBinders</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsLocalBindsLR (GhcPass idL) (GhcPass idR)
-&gt; HsLocalBindsLR (GhcPass idL) (GhcPass idR)
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span> </span><span class="annot"><span class="annottext">LHsLocalBindsLR (GhcPass idL) (GhcPass idR)
</span><a href="#local-6989586621680869274"><span class="hs-identifier hs-var">binds</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1023"></span><span class="annot"><a href="GHC.Hs.Utils.html#collectStmtBinders"><span class="hs-identifier hs-var">collectStmtBinders</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#BodyStmt"><span class="hs-identifier hs-type">BodyStmt</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span>           </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-1024"></span><span class="annot"><a href="GHC.Hs.Utils.html#collectStmtBinders"><span class="hs-identifier hs-var">collectStmtBinders</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LastStmt"><span class="hs-identifier hs-type">LastStmt</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span>           </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-1025"></span><span class="annot"><a href="GHC.Hs.Utils.html#collectStmtBinders"><span class="hs-identifier hs-var">collectStmtBinders</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#ParStmt"><span class="hs-identifier hs-type">ParStmt</span></a></span><span> </span><span class="annot"><span class="annottext">XParStmt (GhcPass idL) (GhcPass idR) body
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869272"><span class="annot"><span class="annottext">[ParStmtBlock (GhcPass idL) (GhcPass idR)]
</span><a href="#local-6989586621680869272"><span class="hs-identifier hs-var">xs</span></a></span></span><span> </span><span class="annot"><span class="annottext">HsExpr (GhcPass idR)
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">SyntaxExpr (GhcPass idR)
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[LStmtLR (GhcPass idL) (GhcPass idL) (LHsExpr (GhcPass idL))]
-&gt; [IdP (GhcPass idL)]
forall (idL :: Pass) (idR :: Pass) body.
CollectPass (GhcPass idL) =&gt;
[LStmtLR (GhcPass idL) (GhcPass idR) body] -&gt; [IdP (GhcPass idL)]
</span><a href="GHC.Hs.Utils.html#collectLStmtsBinders"><span class="hs-identifier hs-var">collectLStmtsBinders</span></a></span><span>
</span><span id="line-1026"></span><span>                                    </span><span class="annot"><span class="annottext">([LStmtLR (GhcPass idL) (GhcPass idL) (LHsExpr (GhcPass idL))]
 -&gt; [IdP (GhcPass idL)])
-&gt; [LStmtLR (GhcPass idL) (GhcPass idL) (LHsExpr (GhcPass idL))]
-&gt; [IdP (GhcPass idL)]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">LStmtLR (GhcPass idL) (GhcPass idL) (LHsExpr (GhcPass idL))
</span><a href="#local-6989586621680869271"><span class="hs-identifier hs-var">s</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#ParStmtBlock"><span class="hs-identifier hs-type">ParStmtBlock</span></a></span><span> </span><span class="annot"><span class="annottext">XParStmtBlock (GhcPass idL) (GhcPass idR)
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869269"><span class="annot"><span class="annottext">[LStmtLR (GhcPass idL) (GhcPass idL) (LHsExpr (GhcPass idL))]
</span><a href="#local-6989586621680869269"><span class="hs-identifier hs-var">ss</span></a></span></span><span> </span><span class="annot"><span class="annottext">[IdP (GhcPass idR)]
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">SyntaxExpr (GhcPass idR)
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[ParStmtBlock (GhcPass idL) (GhcPass idR)]
</span><a href="#local-6989586621680869272"><span class="hs-identifier hs-var">xs</span></a></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680869271"><span class="annot"><span class="annottext">LStmtLR (GhcPass idL) (GhcPass idL) (LHsExpr (GhcPass idL))
</span><a href="#local-6989586621680869271"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[LStmtLR (GhcPass idL) (GhcPass idL) (LHsExpr (GhcPass idL))]
</span><a href="#local-6989586621680869269"><span class="hs-identifier hs-var">ss</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-1027"></span><span class="annot"><a href="GHC.Hs.Utils.html#collectStmtBinders"><span class="hs-identifier hs-var">collectStmtBinders</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#TransStmt"><span class="hs-identifier hs-type">TransStmt</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">trS_stmts :: forall idL idR body. StmtLR idL idR body -&gt; [ExprLStmt idL]
</span><a href="GHC.Hs.Expr.html#trS_stmts"><span class="hs-identifier hs-var">trS_stmts</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869268"><span class="annot"><span class="annottext">[LStmtLR (GhcPass idL) (GhcPass idL) (LHsExpr (GhcPass idL))]
</span><a href="#local-6989586621680869268"><span class="hs-identifier hs-var">stmts</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[LStmtLR (GhcPass idL) (GhcPass idL) (LHsExpr (GhcPass idL))]
-&gt; [IdP (GhcPass idL)]
forall (idL :: Pass) (idR :: Pass) body.
CollectPass (GhcPass idL) =&gt;
[LStmtLR (GhcPass idL) (GhcPass idR) body] -&gt; [IdP (GhcPass idL)]
</span><a href="GHC.Hs.Utils.html#collectLStmtsBinders"><span class="hs-identifier hs-var">collectLStmtsBinders</span></a></span><span> </span><span class="annot"><span class="annottext">[LStmtLR (GhcPass idL) (GhcPass idL) (LHsExpr (GhcPass idL))]
</span><a href="#local-6989586621680869268"><span class="hs-identifier hs-var">stmts</span></a></span><span>
</span><span id="line-1028"></span><span class="annot"><a href="GHC.Hs.Utils.html#collectStmtBinders"><span class="hs-identifier hs-var">collectStmtBinders</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#RecStmt"><span class="hs-identifier hs-type">RecStmt</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">recS_stmts :: forall idL idR body. StmtLR idL idR body -&gt; [LStmtLR idL idR body]
</span><a href="GHC.Hs.Expr.html#recS_stmts"><span class="hs-identifier hs-var">recS_stmts</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869267"><span class="annot"><span class="annottext">[LStmtLR (GhcPass idL) (GhcPass idR) body]
</span><a href="#local-6989586621680869267"><span class="hs-identifier hs-var">ss</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[LStmtLR (GhcPass idL) (GhcPass idR) body] -&gt; [IdP (GhcPass idL)]
forall (idL :: Pass) (idR :: Pass) body.
CollectPass (GhcPass idL) =&gt;
[LStmtLR (GhcPass idL) (GhcPass idR) body] -&gt; [IdP (GhcPass idL)]
</span><a href="GHC.Hs.Utils.html#collectLStmtsBinders"><span class="hs-identifier hs-var">collectLStmtsBinders</span></a></span><span> </span><span class="annot"><span class="annottext">[LStmtLR (GhcPass idL) (GhcPass idR) body]
</span><a href="#local-6989586621680869267"><span class="hs-identifier hs-var">ss</span></a></span><span>
</span><span id="line-1029"></span><span class="annot"><a href="GHC.Hs.Utils.html#collectStmtBinders"><span class="hs-identifier hs-var">collectStmtBinders</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#ApplicativeStmt"><span class="hs-identifier hs-type">ApplicativeStmt</span></a></span><span> </span><span class="annot"><span class="annottext">XApplicativeStmt (GhcPass idL) (GhcPass idR) body
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869265"><span class="annot"><span class="annottext">[(SyntaxExpr (GhcPass idR), ApplicativeArg (GhcPass idL))]
</span><a href="#local-6989586621680869265"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span class="annot"><span class="annottext">Maybe (SyntaxExpr (GhcPass idR))
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">((SyntaxExprGhc idR, ApplicativeArg (GhcPass idL)) -&gt; [IdGhcP idL])
-&gt; [(SyntaxExprGhc idR, ApplicativeArg (GhcPass idL))]
-&gt; [IdGhcP idL]
forall (t :: * -&gt; *) a b. Foldable t =&gt; (a -&gt; [b]) -&gt; t a -&gt; [b]
</span><a href="../../base/src/Data.Foldable.html#concatMap"><span class="hs-identifier hs-var">concatMap</span></a></span><span> </span><span class="annot"><span class="annottext">(SyntaxExprGhc idR, ApplicativeArg (GhcPass idL)) -&gt; [IdGhcP idL]
forall {p} {a}. CollectPass p =&gt; (a, ApplicativeArg p) -&gt; [IdP p]
</span><a href="#local-6989586621680869264"><span class="hs-identifier hs-var">collectArgBinders</span></a></span><span> </span><span class="annot"><span class="annottext">[(SyntaxExpr (GhcPass idR), ApplicativeArg (GhcPass idL))]
[(SyntaxExprGhc idR, ApplicativeArg (GhcPass idL))]
</span><a href="#local-6989586621680869265"><span class="hs-identifier hs-var">args</span></a></span><span>
</span><span id="line-1030"></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-1031"></span><span>  </span><span id="local-6989586621680869264"><span class="annot"><span class="annottext">collectArgBinders :: (a, ApplicativeArg p) -&gt; [IdP p]
</span><a href="#local-6989586621680869264"><span class="hs-identifier hs-var hs-var">collectArgBinders</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#ApplicativeArgOne"><span class="hs-identifier hs-type">ApplicativeArgOne</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">app_arg_pattern :: forall idL. ApplicativeArg idL -&gt; LPat idL
</span><a href="GHC.Hs.Expr.html#app_arg_pattern"><span class="hs-identifier hs-var">app_arg_pattern</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869258"><span class="annot"><span class="annottext">LPat p
</span><a href="#local-6989586621680869258"><span class="hs-identifier hs-var">pat</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LPat p -&gt; [IdP p]
forall p. CollectPass p =&gt; LPat p -&gt; [IdP p]
</span><a href="GHC.Hs.Utils.html#collectPatBinders"><span class="hs-identifier hs-var">collectPatBinders</span></a></span><span> </span><span class="annot"><span class="annottext">LPat p
</span><a href="#local-6989586621680869258"><span class="hs-identifier hs-var">pat</span></a></span><span>
</span><span id="line-1032"></span><span>  </span><span class="annot"><a href="#local-6989586621680869264"><span class="hs-identifier hs-var">collectArgBinders</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#ApplicativeArgMany"><span class="hs-identifier hs-type">ApplicativeArgMany</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">bv_pattern :: forall idL. ApplicativeArg idL -&gt; LPat idL
</span><a href="GHC.Hs.Expr.html#bv_pattern"><span class="hs-identifier hs-var">bv_pattern</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869255"><span class="annot"><span class="annottext">LPat p
</span><a href="#local-6989586621680869255"><span class="hs-identifier hs-var">pat</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LPat p -&gt; [IdP p]
forall p. CollectPass p =&gt; LPat p -&gt; [IdP p]
</span><a href="GHC.Hs.Utils.html#collectPatBinders"><span class="hs-identifier hs-var">collectPatBinders</span></a></span><span> </span><span class="annot"><span class="annottext">LPat p
</span><a href="#local-6989586621680869255"><span class="hs-identifier hs-var">pat</span></a></span><span>
</span><span id="line-1033"></span><span>  </span><span class="annot"><a href="#local-6989586621680869264"><span class="hs-identifier hs-var">collectArgBinders</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#XApplicativeArg"><span class="hs-identifier hs-type">XApplicativeArg</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-1034"></span><span>
</span><span id="line-1035"></span><span>
</span><span id="line-1036"></span><span class="hs-comment">----------------- Patterns --------------------------</span><span>
</span><span id="line-1037"></span><span id="local-6989586621680870314"><span class="annot"><a href="GHC.Hs.Utils.html#collectPatBinders"><span class="hs-identifier hs-type">collectPatBinders</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#CollectPass"><span class="hs-identifier hs-type">CollectPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870314"><span class="hs-identifier hs-type">p</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870314"><span class="hs-identifier hs-type">p</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870314"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">]</span></span><span>
</span><span id="line-1038"></span><span id="collectPatBinders"><span class="annot"><span class="annottext">collectPatBinders :: forall p. CollectPass p =&gt; LPat p -&gt; [IdP p]
</span><a href="GHC.Hs.Utils.html#collectPatBinders"><span class="hs-identifier hs-var hs-var">collectPatBinders</span></a></span></span><span> </span><span id="local-6989586621680869247"><span class="annot"><span class="annottext">XRec p Pat
</span><a href="#local-6989586621680869247"><span class="hs-identifier hs-var">pat</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">XRec p Pat -&gt; [IdP p] -&gt; [IdP p]
forall pass.
CollectPass pass =&gt;
LPat pass -&gt; [IdP pass] -&gt; [IdP pass]
</span><a href="GHC.Hs.Utils.html#collect_lpat"><span class="hs-identifier hs-var">collect_lpat</span></a></span><span> </span><span class="annot"><span class="annottext">XRec p Pat
</span><a href="#local-6989586621680869247"><span class="hs-identifier hs-var">pat</span></a></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-1039"></span><span>
</span><span id="line-1040"></span><span id="local-6989586621680870295"><span class="annot"><a href="GHC.Hs.Utils.html#collectPatsBinders"><span class="hs-identifier hs-type">collectPatsBinders</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#CollectPass"><span class="hs-identifier hs-type">CollectPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870295"><span class="hs-identifier hs-type">p</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870295"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870295"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">]</span></span><span>
</span><span id="line-1041"></span><span id="collectPatsBinders"><span class="annot"><span class="annottext">collectPatsBinders :: forall p. CollectPass p =&gt; [LPat p] -&gt; [IdP p]
</span><a href="GHC.Hs.Utils.html#collectPatsBinders"><span class="hs-identifier hs-var hs-var">collectPatsBinders</span></a></span></span><span> </span><span id="local-6989586621680869239"><span class="annot"><span class="annottext">[XRec p Pat]
</span><a href="#local-6989586621680869239"><span class="hs-identifier hs-var">pats</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Located (Pat p) -&gt; [IdP p] -&gt; [IdP p])
-&gt; [IdP p] -&gt; [Located (Pat p)] -&gt; [IdP p]
forall (t :: * -&gt; *) a b.
Foldable t =&gt;
(a -&gt; b -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldr"><span class="hs-identifier hs-var">foldr</span></a></span><span> </span><span class="annot"><span class="annottext">Located (Pat p) -&gt; [IdP p] -&gt; [IdP p]
forall pass.
CollectPass pass =&gt;
LPat pass -&gt; [IdP pass] -&gt; [IdP pass]
</span><a href="GHC.Hs.Utils.html#collect_lpat"><span class="hs-identifier hs-var">collect_lpat</span></a></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="annot"><span class="annottext">[Located (Pat p)]
[XRec p Pat]
</span><a href="#local-6989586621680869239"><span class="hs-identifier hs-var">pats</span></a></span><span>
</span><span id="line-1042"></span><span>
</span><span id="line-1043"></span><span class="hs-comment">-------------</span><span>
</span><span id="line-1044"></span><span class="annot"><a href="GHC.Hs.Utils.html#collect_lpat"><span class="hs-identifier hs-type">collect_lpat</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-keyword">forall</span><span> </span><span id="local-6989586621680870356"><span class="annot"><a href="#local-6989586621680870356"><span class="hs-identifier hs-type">pass</span></a></span></span><span class="hs-operator">.</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Utils.html#CollectPass"><span class="hs-identifier hs-type">CollectPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870356"><span class="hs-identifier hs-type">pass</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1045"></span><span>             </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870356"><span class="hs-identifier hs-type">pass</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870356"><span class="hs-identifier hs-type">pass</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870356"><span class="hs-identifier hs-type">pass</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-1046"></span><span id="collect_lpat"><span class="annot"><span class="annottext">collect_lpat :: forall pass.
CollectPass pass =&gt;
LPat pass -&gt; [IdP pass] -&gt; [IdP pass]
</span><a href="GHC.Hs.Utils.html#collect_lpat"><span class="hs-identifier hs-var hs-var">collect_lpat</span></a></span></span><span> </span><span id="local-6989586621680869232"><span class="annot"><span class="annottext">XRec pass Pat
</span><a href="#local-6989586621680869232"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span id="local-6989586621680869231"><span class="annot"><span class="annottext">[IdP pass]
</span><a href="#local-6989586621680869231"><span class="hs-identifier hs-var">bndrs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Pat pass -&gt; [IdP pass] -&gt; [IdP pass]
forall p. CollectPass p =&gt; Pat p -&gt; [IdP p] -&gt; [IdP p]
</span><a href="GHC.Hs.Utils.html#collect_pat"><span class="hs-identifier hs-var">collect_pat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Located (Pat pass) -&gt; Pat pass
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span> </span><span class="annot"><span class="annottext">Located (Pat pass)
XRec pass Pat
</span><a href="#local-6989586621680869232"><span class="hs-identifier hs-var">p</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[IdP pass]
</span><a href="#local-6989586621680869231"><span class="hs-identifier hs-var">bndrs</span></a></span><span>
</span><span id="line-1047"></span><span>
</span><span id="line-1048"></span><span class="annot"><a href="GHC.Hs.Utils.html#collect_pat"><span class="hs-identifier hs-type">collect_pat</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-keyword">forall</span><span> </span><span id="local-6989586621680870292"><span class="annot"><a href="#local-6989586621680870292"><span class="hs-identifier hs-type">p</span></a></span></span><span class="hs-operator">.</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#CollectPass"><span class="hs-identifier hs-type">CollectPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870292"><span class="hs-identifier hs-type">p</span></a></span><span>
</span><span id="line-1049"></span><span>            </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#Pat"><span class="hs-identifier hs-type">Pat</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870292"><span class="hs-identifier hs-type">p</span></a></span><span>
</span><span id="line-1050"></span><span>            </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870292"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-1051"></span><span>            </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870292"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-1052"></span><span id="collect_pat"><span class="annot"><span class="annottext">collect_pat :: forall p. CollectPass p =&gt; Pat p -&gt; [IdP p] -&gt; [IdP p]
</span><a href="GHC.Hs.Utils.html#collect_pat"><span class="hs-identifier hs-var hs-var">collect_pat</span></a></span></span><span> </span><span id="local-6989586621680869209"><span class="annot"><span class="annottext">Pat p
</span><a href="#local-6989586621680869209"><span class="hs-identifier hs-var">pat</span></a></span></span><span> </span><span id="local-6989586621680869208"><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869208"><span class="hs-identifier hs-var">bndrs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Pat p
</span><a href="#local-6989586621680869209"><span class="hs-identifier hs-var">pat</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-1053"></span><span>  </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#VarPat"><span class="hs-identifier hs-type">VarPat</span></a></span><span> </span><span class="annot"><span class="annottext">XVarPat p
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869207"><span class="annot"><span class="annottext">Located (IdP p)
</span><a href="#local-6989586621680869207"><span class="hs-identifier hs-var">var</span></a></span></span><span class="hs-special">)</span><span>          </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Located (IdP p) -&gt; IdP p
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span> </span><span class="annot"><span class="annottext">Located (IdP p)
</span><a href="#local-6989586621680869207"><span class="hs-identifier hs-var">var</span></a></span><span> </span><span class="annot"><span class="annottext">IdP p -&gt; [IdP p] -&gt; [IdP p]
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span> </span><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869208"><span class="hs-identifier hs-var">bndrs</span></a></span><span>
</span><span id="line-1054"></span><span>  </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#WildPat"><span class="hs-identifier hs-type">WildPat</span></a></span><span> </span><span class="annot"><span class="annottext">XWildPat p
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>             </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869208"><span class="hs-identifier hs-var">bndrs</span></a></span><span>
</span><span id="line-1055"></span><span>  </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#LazyPat"><span class="hs-identifier hs-type">LazyPat</span></a></span><span> </span><span class="annot"><span class="annottext">XLazyPat p
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869205"><span class="annot"><span class="annottext">XRec p Pat
</span><a href="#local-6989586621680869205"><span class="hs-identifier hs-var">pat</span></a></span></span><span class="hs-special">)</span><span>         </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">XRec p Pat -&gt; [IdP p] -&gt; [IdP p]
forall pass.
CollectPass pass =&gt;
LPat pass -&gt; [IdP pass] -&gt; [IdP pass]
</span><a href="GHC.Hs.Utils.html#collect_lpat"><span class="hs-identifier hs-var">collect_lpat</span></a></span><span> </span><span class="annot"><span class="annottext">XRec p Pat
</span><a href="#local-6989586621680869205"><span class="hs-identifier hs-var">pat</span></a></span><span> </span><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869208"><span class="hs-identifier hs-var">bndrs</span></a></span><span>
</span><span id="line-1056"></span><span>  </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#BangPat"><span class="hs-identifier hs-type">BangPat</span></a></span><span> </span><span class="annot"><span class="annottext">XBangPat p
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869203"><span class="annot"><span class="annottext">XRec p Pat
</span><a href="#local-6989586621680869203"><span class="hs-identifier hs-var">pat</span></a></span></span><span class="hs-special">)</span><span>         </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">XRec p Pat -&gt; [IdP p] -&gt; [IdP p]
forall pass.
CollectPass pass =&gt;
LPat pass -&gt; [IdP pass] -&gt; [IdP pass]
</span><a href="GHC.Hs.Utils.html#collect_lpat"><span class="hs-identifier hs-var">collect_lpat</span></a></span><span> </span><span class="annot"><span class="annottext">XRec p Pat
</span><a href="#local-6989586621680869203"><span class="hs-identifier hs-var">pat</span></a></span><span> </span><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869208"><span class="hs-identifier hs-var">bndrs</span></a></span><span>
</span><span id="line-1057"></span><span>  </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#AsPat"><span class="hs-identifier hs-type">AsPat</span></a></span><span> </span><span class="annot"><span class="annottext">XAsPat p
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869201"><span class="annot"><span class="annottext">Located (IdP p)
</span><a href="#local-6989586621680869201"><span class="hs-identifier hs-var">a</span></a></span></span><span> </span><span id="local-6989586621680869200"><span class="annot"><span class="annottext">XRec p Pat
</span><a href="#local-6989586621680869200"><span class="hs-identifier hs-var">pat</span></a></span></span><span class="hs-special">)</span><span>         </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Located (IdP p) -&gt; IdP p
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span> </span><span class="annot"><span class="annottext">Located (IdP p)
</span><a href="#local-6989586621680869201"><span class="hs-identifier hs-var">a</span></a></span><span> </span><span class="annot"><span class="annottext">IdP p -&gt; [IdP p] -&gt; [IdP p]
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span> </span><span class="annot"><span class="annottext">XRec p Pat -&gt; [IdP p] -&gt; [IdP p]
forall pass.
CollectPass pass =&gt;
LPat pass -&gt; [IdP pass] -&gt; [IdP pass]
</span><a href="GHC.Hs.Utils.html#collect_lpat"><span class="hs-identifier hs-var">collect_lpat</span></a></span><span> </span><span class="annot"><span class="annottext">XRec p Pat
</span><a href="#local-6989586621680869200"><span class="hs-identifier hs-var">pat</span></a></span><span> </span><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869208"><span class="hs-identifier hs-var">bndrs</span></a></span><span>
</span><span id="line-1058"></span><span>  </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#ViewPat"><span class="hs-identifier hs-type">ViewPat</span></a></span><span> </span><span class="annot"><span class="annottext">XViewPat p
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">LHsExpr p
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869198"><span class="annot"><span class="annottext">XRec p Pat
</span><a href="#local-6989586621680869198"><span class="hs-identifier hs-var">pat</span></a></span></span><span class="hs-special">)</span><span>       </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">XRec p Pat -&gt; [IdP p] -&gt; [IdP p]
forall pass.
CollectPass pass =&gt;
LPat pass -&gt; [IdP pass] -&gt; [IdP pass]
</span><a href="GHC.Hs.Utils.html#collect_lpat"><span class="hs-identifier hs-var">collect_lpat</span></a></span><span> </span><span class="annot"><span class="annottext">XRec p Pat
</span><a href="#local-6989586621680869198"><span class="hs-identifier hs-var">pat</span></a></span><span> </span><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869208"><span class="hs-identifier hs-var">bndrs</span></a></span><span>
</span><span id="line-1059"></span><span>  </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#ParPat"><span class="hs-identifier hs-type">ParPat</span></a></span><span> </span><span class="annot"><span class="annottext">XParPat p
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869197"><span class="annot"><span class="annottext">XRec p Pat
</span><a href="#local-6989586621680869197"><span class="hs-identifier hs-var">pat</span></a></span></span><span class="hs-special">)</span><span>          </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">XRec p Pat -&gt; [IdP p] -&gt; [IdP p]
forall pass.
CollectPass pass =&gt;
LPat pass -&gt; [IdP pass] -&gt; [IdP pass]
</span><a href="GHC.Hs.Utils.html#collect_lpat"><span class="hs-identifier hs-var">collect_lpat</span></a></span><span> </span><span class="annot"><span class="annottext">XRec p Pat
</span><a href="#local-6989586621680869197"><span class="hs-identifier hs-var">pat</span></a></span><span> </span><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869208"><span class="hs-identifier hs-var">bndrs</span></a></span><span>
</span><span id="line-1060"></span><span>  </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#ListPat"><span class="hs-identifier hs-type">ListPat</span></a></span><span> </span><span class="annot"><span class="annottext">XListPat p
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869195"><span class="annot"><span class="annottext">[XRec p Pat]
</span><a href="#local-6989586621680869195"><span class="hs-identifier hs-var">pats</span></a></span></span><span class="hs-special">)</span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">(Located (Pat p) -&gt; [IdP p] -&gt; [IdP p])
-&gt; [IdP p] -&gt; [Located (Pat p)] -&gt; [IdP p]
forall (t :: * -&gt; *) a b.
Foldable t =&gt;
(a -&gt; b -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldr"><span class="hs-identifier hs-var">foldr</span></a></span><span> </span><span class="annot"><span class="annottext">Located (Pat p) -&gt; [IdP p] -&gt; [IdP p]
forall pass.
CollectPass pass =&gt;
LPat pass -&gt; [IdP pass] -&gt; [IdP pass]
</span><a href="GHC.Hs.Utils.html#collect_lpat"><span class="hs-identifier hs-var">collect_lpat</span></a></span><span> </span><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869208"><span class="hs-identifier hs-var">bndrs</span></a></span><span> </span><span class="annot"><span class="annottext">[Located (Pat p)]
[XRec p Pat]
</span><a href="#local-6989586621680869195"><span class="hs-identifier hs-var">pats</span></a></span><span>
</span><span id="line-1061"></span><span>  </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#TuplePat"><span class="hs-identifier hs-type">TuplePat</span></a></span><span> </span><span class="annot"><span class="annottext">XTuplePat p
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869194"><span class="annot"><span class="annottext">[XRec p Pat]
</span><a href="#local-6989586621680869194"><span class="hs-identifier hs-var">pats</span></a></span></span><span> </span><span class="annot"><span class="annottext">Boxity
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">(Located (Pat p) -&gt; [IdP p] -&gt; [IdP p])
-&gt; [IdP p] -&gt; [Located (Pat p)] -&gt; [IdP p]
forall (t :: * -&gt; *) a b.
Foldable t =&gt;
(a -&gt; b -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldr"><span class="hs-identifier hs-var">foldr</span></a></span><span> </span><span class="annot"><span class="annottext">Located (Pat p) -&gt; [IdP p] -&gt; [IdP p]
forall pass.
CollectPass pass =&gt;
LPat pass -&gt; [IdP pass] -&gt; [IdP pass]
</span><a href="GHC.Hs.Utils.html#collect_lpat"><span class="hs-identifier hs-var">collect_lpat</span></a></span><span> </span><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869208"><span class="hs-identifier hs-var">bndrs</span></a></span><span> </span><span class="annot"><span class="annottext">[Located (Pat p)]
[XRec p Pat]
</span><a href="#local-6989586621680869194"><span class="hs-identifier hs-var">pats</span></a></span><span>
</span><span id="line-1062"></span><span>  </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#SumPat"><span class="hs-identifier hs-type">SumPat</span></a></span><span> </span><span class="annot"><span class="annottext">XSumPat p
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869192"><span class="annot"><span class="annottext">XRec p Pat
</span><a href="#local-6989586621680869192"><span class="hs-identifier hs-var">pat</span></a></span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">XRec p Pat -&gt; [IdP p] -&gt; [IdP p]
forall pass.
CollectPass pass =&gt;
LPat pass -&gt; [IdP pass] -&gt; [IdP pass]
</span><a href="GHC.Hs.Utils.html#collect_lpat"><span class="hs-identifier hs-var">collect_lpat</span></a></span><span> </span><span class="annot"><span class="annottext">XRec p Pat
</span><a href="#local-6989586621680869192"><span class="hs-identifier hs-var">pat</span></a></span><span> </span><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869208"><span class="hs-identifier hs-var">bndrs</span></a></span><span>
</span><span id="line-1063"></span><span>  </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#ConPat"><span class="hs-identifier hs-type">ConPat</span></a></span><span> </span><span class="hs-special">{</span><span class="annot"><span class="annottext">pat_args :: forall p. Pat p -&gt; HsConPatDetails p
</span><a href="GHC.Hs.Pat.html#pat_args"><span class="hs-identifier hs-var">pat_args</span></a></span><span class="hs-glyph">=</span><span id="local-6989586621680869191"><span class="annot"><span class="annottext">HsConPatDetails p
</span><a href="#local-6989586621680869191"><span class="hs-identifier hs-var">ps</span></a></span></span><span class="hs-special">}</span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">(Located (Pat p) -&gt; [IdP p] -&gt; [IdP p])
-&gt; [IdP p] -&gt; [Located (Pat p)] -&gt; [IdP p]
forall (t :: * -&gt; *) a b.
Foldable t =&gt;
(a -&gt; b -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldr"><span class="hs-identifier hs-var">foldr</span></a></span><span> </span><span class="annot"><span class="annottext">Located (Pat p) -&gt; [IdP p] -&gt; [IdP p]
forall pass.
CollectPass pass =&gt;
LPat pass -&gt; [IdP pass] -&gt; [IdP pass]
</span><a href="GHC.Hs.Utils.html#collect_lpat"><span class="hs-identifier hs-var">collect_lpat</span></a></span><span> </span><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869208"><span class="hs-identifier hs-var">bndrs</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsConPatDetails p -&gt; [XRec p Pat]
forall p. HsConPatDetails p -&gt; [LPat p]
</span><a href="GHC.Hs.Pat.html#hsConPatArgs"><span class="hs-identifier hs-var">hsConPatArgs</span></a></span><span> </span><span class="annot"><span class="annottext">HsConPatDetails p
</span><a href="#local-6989586621680869191"><span class="hs-identifier hs-var">ps</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1064"></span><span>  </span><span class="hs-comment">-- See Note [Dictionary binders in ConPatOut]</span><span>
</span><span id="line-1065"></span><span>  </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#LitPat"><span class="hs-identifier hs-type">LitPat</span></a></span><span> </span><span class="annot"><span class="annottext">XLitPat p
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">HsLit p
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>            </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869208"><span class="hs-identifier hs-var">bndrs</span></a></span><span>
</span><span id="line-1066"></span><span>  </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#NPat"><span class="hs-identifier hs-type">NPat</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span>               </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869208"><span class="hs-identifier hs-var">bndrs</span></a></span><span>
</span><span id="line-1067"></span><span>  </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#NPlusKPat"><span class="hs-identifier hs-type">NPlusKPat</span></a></span><span> </span><span class="annot"><span class="annottext">XNPlusKPat p
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869189"><span class="annot"><span class="annottext">Located (IdP p)
</span><a href="#local-6989586621680869189"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="annot"><span class="annottext">Located (HsOverLit p)
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">HsOverLit p
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">SyntaxExpr p
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">SyntaxExpr p
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Located (IdP p) -&gt; IdP p
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span> </span><span class="annot"><span class="annottext">Located (IdP p)
</span><a href="#local-6989586621680869189"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="annot"><span class="annottext">IdP p -&gt; [IdP p] -&gt; [IdP p]
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span> </span><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869208"><span class="hs-identifier hs-var">bndrs</span></a></span><span>
</span><span id="line-1068"></span><span>  </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#SigPat"><span class="hs-identifier hs-type">SigPat</span></a></span><span> </span><span class="annot"><span class="annottext">XSigPat p
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869187"><span class="annot"><span class="annottext">XRec p Pat
</span><a href="#local-6989586621680869187"><span class="hs-identifier hs-var">pat</span></a></span></span><span> </span><span class="annot"><span class="annottext">HsPatSigType (NoGhcTc p)
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">XRec p Pat -&gt; [IdP p] -&gt; [IdP p]
forall pass.
CollectPass pass =&gt;
LPat pass -&gt; [IdP pass] -&gt; [IdP pass]
</span><a href="GHC.Hs.Utils.html#collect_lpat"><span class="hs-identifier hs-var">collect_lpat</span></a></span><span> </span><span class="annot"><span class="annottext">XRec p Pat
</span><a href="#local-6989586621680869187"><span class="hs-identifier hs-var">pat</span></a></span><span> </span><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869208"><span class="hs-identifier hs-var">bndrs</span></a></span><span>
</span><span id="line-1069"></span><span>  </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#SplicePat"><span class="hs-identifier hs-type">SplicePat</span></a></span><span> </span><span class="annot"><span class="annottext">XSplicePat p
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsSpliced"><span class="hs-identifier hs-type">HsSpliced</span></a></span><span> </span><span class="annot"><span class="annottext">XSpliced p
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">ThModFinalizers
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#HsSplicedPat"><span class="hs-identifier hs-type">HsSplicedPat</span></a></span><span> </span><span id="local-6989586621680869183"><span class="annot"><span class="annottext">Pat p
</span><a href="#local-6989586621680869183"><span class="hs-identifier hs-var">pat</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-1070"></span><span>                          </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Pat p -&gt; [IdP p] -&gt; [IdP p]
forall p. CollectPass p =&gt; Pat p -&gt; [IdP p] -&gt; [IdP p]
</span><a href="GHC.Hs.Utils.html#collect_pat"><span class="hs-identifier hs-var">collect_pat</span></a></span><span> </span><span class="annot"><span class="annottext">Pat p
</span><a href="#local-6989586621680869183"><span class="hs-identifier hs-var">pat</span></a></span><span> </span><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869208"><span class="hs-identifier hs-var">bndrs</span></a></span><span>
</span><span id="line-1071"></span><span>  </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#SplicePat"><span class="hs-identifier hs-type">SplicePat</span></a></span><span> </span><span class="annot"><span class="annottext">XSplicePat p
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">HsSplice p
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>         </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869208"><span class="hs-identifier hs-var">bndrs</span></a></span><span>
</span><span id="line-1072"></span><span>  </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#XPat"><span class="hs-identifier hs-type">XPat</span></a></span><span> </span><span id="local-6989586621680869182"><span class="annot"><span class="annottext">XXPat p
</span><a href="#local-6989586621680869182"><span class="hs-identifier hs-var">ext</span></a></span></span><span class="hs-special">)</span><span>              </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Proxy p -&gt; XXPat p -&gt; [IdP p] -&gt; [IdP p]
forall p. CollectPass p =&gt; Proxy p -&gt; XXPat p -&gt; [IdP p] -&gt; [IdP p]
</span><a href="GHC.Hs.Utils.html#collectXXPat"><span class="hs-identifier hs-var">collectXXPat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall {t}. Proxy t
forall {k} (t :: k). Proxy t
</span><a href="../../base/src/Data.Proxy.html#Proxy"><span class="hs-identifier hs-var">Proxy</span></a></span><span> </span><span class="hs-glyph">@</span><span class="annot"><a href="#local-6989586621680870292"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">XXPat p
</span><a href="#local-6989586621680869182"><span class="hs-identifier hs-var">ext</span></a></span><span> </span><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869208"><span class="hs-identifier hs-var">bndrs</span></a></span><span>
</span><span id="line-1073"></span><span>
</span><span id="line-1074"></span><span class="hs-comment">-- | This class specifies how to collect variable identifiers from extension patterns in the given pass.</span><span>
</span><span id="line-1075"></span><span class="hs-comment">-- Consumers of the GHC API that define their own passes should feel free to implement instances in order</span><span>
</span><span id="line-1076"></span><span class="hs-comment">-- to make use of functions which depend on it.</span><span>
</span><span id="line-1077"></span><span class="hs-comment">--</span><span>
</span><span id="line-1078"></span><span class="hs-comment">-- In particular, Haddock already makes use of this, with an instance for its 'DocNameI' pass so that</span><span>
</span><span id="line-1079"></span><span class="hs-comment">-- it can reuse the code in GHC for collecting binders.</span><span>
</span><span id="line-1080"></span><span class="hs-keyword">class</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#XRec"><span class="hs-identifier hs-type">XRec</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870358"><span class="hs-identifier hs-type">p</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#Pat"><span class="hs-identifier hs-type">Pat</span></a></span><span> </span><span class="annot"><span class="hs-operator hs-type">~</span></span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#Pat"><span class="hs-identifier hs-type">Pat</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870358"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span id="CollectPass"><span class="annot"><a href="GHC.Hs.Utils.html#CollectPass"><span class="hs-identifier hs-var">CollectPass</span></a></span></span><span> </span><span id="local-6989586621680870358"><span class="annot"><a href="#local-6989586621680870358"><span class="hs-identifier hs-type">p</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-1081"></span><span>  </span><span id="collectXXPat"><span class="annot"><a href="GHC.Hs.Utils.html#collectXXPat"><span class="hs-identifier hs-type">collectXXPat</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/Data.Proxy.html#Proxy"><span class="hs-identifier hs-type">Proxy</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870358"><span class="hs-identifier hs-type">p</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#XXPat"><span class="hs-identifier hs-type">XXPat</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870358"><span class="hs-identifier hs-type">p</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870358"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870358"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-1082"></span><span>
</span><span id="line-1083"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#CollectPass"><span class="hs-identifier hs-type">CollectPass</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="hs-special">'</span><span class="annot"><a href="GHC.Hs.Extension.html#Parsed"><span class="hs-identifier hs-type">Parsed</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-1084"></span><span>  </span><span id="local-6989586621680869173"><span class="annot"><span class="annottext">collectXXPat :: Proxy GhcPs -&gt; XXPat GhcPs -&gt; [IdP GhcPs] -&gt; [IdP GhcPs]
</span><a href="#local-6989586621680869173"><span class="hs-identifier hs-var hs-var hs-var hs-var">collectXXPat</span></a></span></span><span> </span><span class="annot"><span class="annottext">Proxy GhcPs
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869172"><span class="annot"><span class="annottext">XXPat GhcPs
</span><a href="#local-6989586621680869172"><span class="hs-identifier hs-var">ext</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NoExtCon -&gt; [RdrName] -&gt; [RdrName]
forall a. NoExtCon -&gt; a
</span><a href="GHC.Hs.Extension.html#noExtCon"><span class="hs-identifier hs-var">noExtCon</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtCon
XXPat GhcPs
</span><a href="#local-6989586621680869172"><span class="hs-identifier hs-var">ext</span></a></span><span>
</span><span id="line-1085"></span><span>
</span><span id="line-1086"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#CollectPass"><span class="hs-identifier hs-type">CollectPass</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="hs-special">'</span><span class="annot"><a href="GHC.Hs.Extension.html#Renamed"><span class="hs-identifier hs-type">Renamed</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-1087"></span><span>  </span><span id="local-6989586621680869166"><span class="annot"><span class="annottext">collectXXPat :: Proxy GhcRn -&gt; XXPat GhcRn -&gt; [IdP GhcRn] -&gt; [IdP GhcRn]
</span><a href="#local-6989586621680869166"><span class="hs-identifier hs-var hs-var hs-var hs-var">collectXXPat</span></a></span></span><span> </span><span class="annot"><span class="annottext">Proxy GhcRn
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869165"><span class="annot"><span class="annottext">XXPat GhcRn
</span><a href="#local-6989586621680869165"><span class="hs-identifier hs-var">ext</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NoExtCon -&gt; [Name] -&gt; [Name]
forall a. NoExtCon -&gt; a
</span><a href="GHC.Hs.Extension.html#noExtCon"><span class="hs-identifier hs-var">noExtCon</span></a></span><span> </span><span class="annot"><span class="annottext">NoExtCon
XXPat GhcRn
</span><a href="#local-6989586621680869165"><span class="hs-identifier hs-var">ext</span></a></span><span>
</span><span id="line-1088"></span><span>
</span><span id="line-1089"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#CollectPass"><span class="hs-identifier hs-type">CollectPass</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="hs-special">'</span><span class="annot"><a href="GHC.Hs.Extension.html#Typechecked"><span class="hs-identifier hs-type">Typechecked</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-1090"></span><span>  </span><span id="local-6989586621680869159"><span class="annot"><span class="annottext">collectXXPat :: Proxy GhcTc -&gt; XXPat GhcTc -&gt; [IdP GhcTc] -&gt; [IdP GhcTc]
</span><a href="#local-6989586621680869159"><span class="hs-identifier hs-var hs-var hs-var hs-var">collectXXPat</span></a></span></span><span> </span><span class="annot"><span class="annottext">Proxy GhcTc
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#CoPat"><span class="hs-identifier hs-type">CoPat</span></a></span><span> </span><span class="annot"><span class="annottext">HsWrapper
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869158"><span class="annot"><span class="annottext">Pat GhcTc
</span><a href="#local-6989586621680869158"><span class="hs-identifier hs-var">pat</span></a></span></span><span> </span><span class="annot"><span class="annottext">Type
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Pat GhcTc -&gt; [IdP GhcTc] -&gt; [IdP GhcTc]
forall p. CollectPass p =&gt; Pat p -&gt; [IdP p] -&gt; [IdP p]
</span><a href="GHC.Hs.Utils.html#collect_pat"><span class="hs-identifier hs-var">collect_pat</span></a></span><span> </span><span class="annot"><span class="annottext">Pat GhcTc
</span><a href="#local-6989586621680869158"><span class="hs-identifier hs-var">pat</span></a></span><span>
</span><span id="line-1091"></span><span>
</span><span id="line-1092"></span><span>
</span><span id="line-1093"></span><span class="hs-comment">{-
Note [Dictionary binders in ConPatOut] See also same Note in GHC.HsToCore.Arrows
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Do *not* gather (a) dictionary and (b) dictionary bindings as binders
of a ConPatOut pattern.  For most calls it doesn't matter, because
it's pre-typechecker and there are no ConPatOuts.  But it does matter
more in the desugarer; for example, GHC.HsToCore.Utils.mkSelectorBinds uses
collectPatBinders.  In a lazy pattern, for example f ~(C x y) = ...,
we want to generate bindings for x,y but not for dictionaries bound by
C.  (The type checker ensures they would not be used.)

Desugaring of arrow case expressions needs these bindings (see GHC.HsToCore.Arrows
and arrowcase1), but SPJ (Jan 2007) says it's safer for it to use its
own pat-binder-collector:

Here's the problem.  Consider

data T a where
   C :: Num a =&gt; a -&gt; Int -&gt; T a

f ~(C (n+1) m) = (n,m)

Here, the pattern (C (n+1)) binds a hidden dictionary (d::Num a),
and *also* uses that dictionary to match the (n+1) pattern.  Yet, the
variables bound by the lazy pattern are n,m, *not* the dictionary d.
So in mkSelectorBinds in GHC.HsToCore.Utils, we want just m,n as the variables bound.
-}</span><span>
</span><span id="line-1120"></span><span>
</span><span id="line-1121"></span><span class="annot"><a href="GHC.Hs.Utils.html#hsGroupBinders"><span class="hs-identifier hs-type">hsGroupBinders</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Decls.html#HsGroup"><span class="hs-identifier hs-type">HsGroup</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.Name.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-1122"></span><span id="hsGroupBinders"><span class="annot"><span class="annottext">hsGroupBinders :: HsGroup GhcRn -&gt; [Name]
</span><a href="GHC.Hs.Utils.html#hsGroupBinders"><span class="hs-identifier hs-var hs-var">hsGroupBinders</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Decls.html#HsGroup"><span class="hs-identifier hs-type">HsGroup</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">hs_valds :: forall p. HsGroup p -&gt; HsValBinds p
</span><a href="GHC.Hs.Decls.html#hs_valds"><span class="hs-identifier hs-var">hs_valds</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869155"><span class="annot"><span class="annottext">HsValBinds GhcRn
</span><a href="#local-6989586621680869155"><span class="hs-identifier hs-var">val_decls</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">hs_tyclds :: forall p. HsGroup p -&gt; [TyClGroup p]
</span><a href="GHC.Hs.Decls.html#hs_tyclds"><span class="hs-identifier hs-var">hs_tyclds</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869153"><span class="annot"><span class="annottext">[TyClGroup GhcRn]
</span><a href="#local-6989586621680869153"><span class="hs-identifier hs-var">tycl_decls</span></a></span></span><span class="hs-special">,</span><span>
</span><span id="line-1123"></span><span>                          </span><span class="annot"><span class="annottext">hs_fords :: forall p. HsGroup p -&gt; [LForeignDecl p]
</span><a href="GHC.Hs.Decls.html#hs_fords"><span class="hs-identifier hs-var">hs_fords</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869151"><span class="annot"><span class="annottext">[LForeignDecl GhcRn]
</span><a href="#local-6989586621680869151"><span class="hs-identifier hs-var">foreign_decls</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-1124"></span><span>  </span><span class="hs-glyph">=</span><span>  </span><span class="annot"><span class="annottext">HsValBinds GhcRn -&gt; [IdP GhcRn]
forall (idL :: Pass) (idR :: Pass).
CollectPass (GhcPass idL) =&gt;
HsValBindsLR (GhcPass idL) (GhcPass idR) -&gt; [IdP (GhcPass idL)]
</span><a href="GHC.Hs.Utils.html#collectHsValBinders"><span class="hs-identifier hs-var">collectHsValBinders</span></a></span><span> </span><span class="annot"><span class="annottext">HsValBinds GhcRn
</span><a href="#local-6989586621680869155"><span class="hs-identifier hs-var">val_decls</span></a></span><span>
</span><span id="line-1125"></span><span>  </span><span class="annot"><span class="annottext">[Name] -&gt; [Name] -&gt; [Name]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">[TyClGroup GhcRn] -&gt; [LForeignDecl GhcRn] -&gt; [Name]
</span><a href="GHC.Hs.Utils.html#hsTyClForeignBinders"><span class="hs-identifier hs-var">hsTyClForeignBinders</span></a></span><span> </span><span class="annot"><span class="annottext">[TyClGroup GhcRn]
</span><a href="#local-6989586621680869153"><span class="hs-identifier hs-var">tycl_decls</span></a></span><span> </span><span class="annot"><span class="annottext">[LForeignDecl GhcRn]
</span><a href="#local-6989586621680869151"><span class="hs-identifier hs-var">foreign_decls</span></a></span><span>
</span><span id="line-1126"></span><span>
</span><span id="line-1127"></span><span class="annot"><a href="GHC.Hs.Utils.html#hsTyClForeignBinders"><span class="hs-identifier hs-type">hsTyClForeignBinders</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Decls.html#TyClGroup"><span class="hs-identifier hs-type">TyClGroup</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-1128"></span><span>                     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Decls.html#LForeignDecl"><span class="hs-identifier hs-type">LForeignDecl</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-1129"></span><span>                     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.Name.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-1130"></span><span class="hs-comment">-- We need to look at instance declarations too,</span><span>
</span><span id="line-1131"></span><span class="hs-comment">-- because their associated types may bind data constructors</span><span>
</span><span id="line-1132"></span><span id="hsTyClForeignBinders"><span class="annot"><span class="annottext">hsTyClForeignBinders :: [TyClGroup GhcRn] -&gt; [LForeignDecl GhcRn] -&gt; [Name]
</span><a href="GHC.Hs.Utils.html#hsTyClForeignBinders"><span class="hs-identifier hs-var hs-var">hsTyClForeignBinders</span></a></span></span><span> </span><span id="local-6989586621680869150"><span class="annot"><span class="annottext">[TyClGroup GhcRn]
</span><a href="#local-6989586621680869150"><span class="hs-identifier hs-var">tycl_decls</span></a></span></span><span> </span><span id="local-6989586621680869149"><span class="annot"><span class="annottext">[LForeignDecl GhcRn]
</span><a href="#local-6989586621680869149"><span class="hs-identifier hs-var">foreign_decls</span></a></span></span><span>
</span><span id="line-1133"></span><span>  </span><span class="hs-glyph">=</span><span>    </span><span class="annot"><span class="annottext">(Located Name -&gt; Name) -&gt; [Located Name] -&gt; [Name]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">Located Name -&gt; Name
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[LForeignDecl GhcRn] -&gt; [Located (IdP GhcRn)]
forall pass. [LForeignDecl pass] -&gt; [Located (IdP pass)]
</span><a href="GHC.Hs.Utils.html#hsForeignDeclsBinders"><span class="hs-identifier hs-var">hsForeignDeclsBinders</span></a></span><span> </span><span class="annot"><span class="annottext">[LForeignDecl GhcRn]
</span><a href="#local-6989586621680869149"><span class="hs-identifier hs-var">foreign_decls</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1134"></span><span>    </span><span class="annot"><span class="annottext">[Name] -&gt; [Name] -&gt; [Name]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">([Located Name], [LFieldOcc GhcRn]) -&gt; [Name]
</span><a href="#local-6989586621680869148"><span class="hs-identifier hs-var">getSelectorNames</span></a></span><span>
</span><span id="line-1135"></span><span>         </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(TyClGroup GhcRn -&gt; ([Located Name], [LFieldOcc GhcRn]))
-&gt; [TyClGroup GhcRn] -&gt; ([Located Name], [LFieldOcc GhcRn])
forall (t :: * -&gt; *) m a.
(Foldable t, Monoid m) =&gt;
(a -&gt; m) -&gt; t a -&gt; m
</span><a href="../../base/src/Data.Foldable.html#foldMap"><span class="hs-identifier hs-var">foldMap</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Located (TyClDecl GhcRn) -&gt; ([Located Name], [LFieldOcc GhcRn]))
-&gt; [Located (TyClDecl GhcRn)]
-&gt; ([Located Name], [LFieldOcc GhcRn])
forall (t :: * -&gt; *) m a.
(Foldable t, Monoid m) =&gt;
(a -&gt; m) -&gt; t a -&gt; m
</span><a href="../../base/src/Data.Foldable.html#foldMap"><span class="hs-identifier hs-var">foldMap</span></a></span><span> </span><span class="annot"><span class="annottext">Located (TyClDecl GhcRn) -&gt; ([Located Name], [LFieldOcc GhcRn])
forall (p :: Pass).
IsPass p =&gt;
Located (TyClDecl (GhcPass p))
-&gt; ([Located (IdP (GhcPass p))], [LFieldOcc (GhcPass p)])
</span><a href="GHC.Hs.Utils.html#hsLTyClDeclBinders"><span class="hs-identifier hs-var">hsLTyClDeclBinders</span></a></span><span> </span><span class="annot"><span class="annottext">([Located (TyClDecl GhcRn)] -&gt; ([Located Name], [LFieldOcc GhcRn]))
-&gt; (TyClGroup GhcRn -&gt; [Located (TyClDecl GhcRn)])
-&gt; TyClGroup GhcRn
-&gt; ([Located Name], [LFieldOcc GhcRn])
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">TyClGroup GhcRn -&gt; [Located (TyClDecl GhcRn)]
forall pass. TyClGroup pass -&gt; [LTyClDecl pass]
</span><a href="GHC.Hs.Decls.html#group_tyclds"><span class="hs-identifier hs-var hs-var">group_tyclds</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[TyClGroup GhcRn]
</span><a href="#local-6989586621680869150"><span class="hs-identifier hs-var">tycl_decls</span></a></span><span>
</span><span id="line-1136"></span><span>         </span><span class="annot"><span class="annottext">([Located Name], [LFieldOcc GhcRn])
-&gt; ([Located Name], [LFieldOcc GhcRn])
-&gt; ([Located Name], [LFieldOcc GhcRn])
forall a. Monoid a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Base.html#mappend"><span class="hs-operator hs-var">`mappend`</span></a></span><span>
</span><span id="line-1137"></span><span>         </span><span class="annot"><span class="annottext">(TyClGroup GhcRn -&gt; ([Located Name], [LFieldOcc GhcRn]))
-&gt; [TyClGroup GhcRn] -&gt; ([Located Name], [LFieldOcc GhcRn])
forall (t :: * -&gt; *) m a.
(Foldable t, Monoid m) =&gt;
(a -&gt; m) -&gt; t a -&gt; m
</span><a href="../../base/src/Data.Foldable.html#foldMap"><span class="hs-identifier hs-var">foldMap</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(LInstDecl GhcRn -&gt; ([Located Name], [LFieldOcc GhcRn]))
-&gt; [LInstDecl GhcRn] -&gt; ([Located Name], [LFieldOcc GhcRn])
forall (t :: * -&gt; *) m a.
(Foldable t, Monoid m) =&gt;
(a -&gt; m) -&gt; t a -&gt; m
</span><a href="../../base/src/Data.Foldable.html#foldMap"><span class="hs-identifier hs-var">foldMap</span></a></span><span> </span><span class="annot"><span class="annottext">LInstDecl GhcRn -&gt; ([Located Name], [LFieldOcc GhcRn])
forall (p :: Pass).
IsPass p =&gt;
LInstDecl (GhcPass p)
-&gt; ([Located (IdP (GhcPass p))], [LFieldOcc (GhcPass p)])
</span><a href="GHC.Hs.Utils.html#hsLInstDeclBinders"><span class="hs-identifier hs-var">hsLInstDeclBinders</span></a></span><span> </span><span class="annot"><span class="annottext">([LInstDecl GhcRn] -&gt; ([Located Name], [LFieldOcc GhcRn]))
-&gt; (TyClGroup GhcRn -&gt; [LInstDecl GhcRn])
-&gt; TyClGroup GhcRn
-&gt; ([Located Name], [LFieldOcc GhcRn])
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">TyClGroup GhcRn -&gt; [LInstDecl GhcRn]
forall pass. TyClGroup pass -&gt; [LInstDecl pass]
</span><a href="GHC.Hs.Decls.html#group_instds"><span class="hs-identifier hs-var hs-var">group_instds</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[TyClGroup GhcRn]
</span><a href="#local-6989586621680869150"><span class="hs-identifier hs-var">tycl_decls</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1138"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-1139"></span><span>    </span><span class="annot"><a href="#local-6989586621680869148"><span class="hs-identifier hs-type">getSelectorNames</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="annot"><a href="GHC.Types.Name.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span class="hs-special">]</span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Type.html#LFieldOcc"><span class="hs-identifier hs-type">LFieldOcc</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.Name.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-1140"></span><span>    </span><span id="local-6989586621680869148"><span class="annot"><span class="annottext">getSelectorNames :: ([Located Name], [LFieldOcc GhcRn]) -&gt; [Name]
</span><a href="#local-6989586621680869148"><span class="hs-identifier hs-var hs-var">getSelectorNames</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621680869143"><span class="annot"><span class="annottext">[Located Name]
</span><a href="#local-6989586621680869143"><span class="hs-identifier hs-var">ns</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680869142"><span class="annot"><span class="annottext">[LFieldOcc GhcRn]
</span><a href="#local-6989586621680869142"><span class="hs-identifier hs-var">fs</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Located Name -&gt; Name) -&gt; [Located Name] -&gt; [Name]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">Located Name -&gt; Name
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span> </span><span class="annot"><span class="annottext">[Located Name]
</span><a href="#local-6989586621680869143"><span class="hs-identifier hs-var">ns</span></a></span><span> </span><span class="annot"><span class="annottext">[Name] -&gt; [Name] -&gt; [Name]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">(LFieldOcc GhcRn -&gt; Name) -&gt; [LFieldOcc GhcRn] -&gt; [Name]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FieldOcc GhcRn -&gt; Name
forall pass. FieldOcc pass -&gt; XCFieldOcc pass
</span><a href="GHC.Hs.Type.html#extFieldOcc"><span class="hs-identifier hs-var hs-var">extFieldOcc</span></a></span><span> </span><span class="annot"><span class="annottext">(FieldOcc GhcRn -&gt; Name)
-&gt; (LFieldOcc GhcRn -&gt; FieldOcc GhcRn) -&gt; LFieldOcc GhcRn -&gt; Name
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">LFieldOcc GhcRn -&gt; FieldOcc GhcRn
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[LFieldOcc GhcRn]
</span><a href="#local-6989586621680869142"><span class="hs-identifier hs-var">fs</span></a></span><span>
</span><span id="line-1141"></span><span>
</span><span id="line-1142"></span><span class="hs-comment">-------------------</span><span>
</span><span id="line-1143"></span><span id="local-6989586621680870260"><span class="annot"><a href="GHC.Hs.Utils.html#hsLTyClDeclBinders"><span class="hs-identifier hs-type">hsLTyClDeclBinders</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#IsPass"><span class="hs-identifier hs-type">IsPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870260"><span class="hs-identifier hs-type">p</span></a></span><span>
</span><span id="line-1144"></span><span>                   </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Decls.html#TyClDecl"><span class="hs-identifier hs-type">TyClDecl</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870260"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-1145"></span><span>                   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870260"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">]</span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Type.html#LFieldOcc"><span class="hs-identifier hs-type">LFieldOcc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870260"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span class="hs-special">)</span></span><span>
</span><span id="line-1146"></span><span class="hs-comment">-- ^ Returns all the /binding/ names of the decl.  The first one is</span><span>
</span><span id="line-1147"></span><span class="hs-comment">-- guaranteed to be the name of the decl. The first component</span><span>
</span><span id="line-1148"></span><span class="hs-comment">-- represents all binding names except record fields; the second</span><span>
</span><span id="line-1149"></span><span class="hs-comment">-- represents field occurrences. For record fields mentioned in</span><span>
</span><span id="line-1150"></span><span class="hs-comment">-- multiple constructors, the SrcLoc will be from the first occurrence.</span><span>
</span><span id="line-1151"></span><span class="hs-comment">--</span><span>
</span><span id="line-1152"></span><span class="hs-comment">-- Each returned (Located name) has a SrcSpan for the /whole/ declaration.</span><span>
</span><span id="line-1153"></span><span class="hs-comment">-- See Note [SrcSpan for binders]</span><span>
</span><span id="line-1154"></span><span>
</span><span id="line-1155"></span><span id="hsLTyClDeclBinders"><span class="annot"><span class="annottext">hsLTyClDeclBinders :: forall (p :: Pass).
IsPass p =&gt;
Located (TyClDecl (GhcPass p))
-&gt; ([Located (IdP (GhcPass p))], [LFieldOcc (GhcPass p)])
</span><a href="GHC.Hs.Utils.html#hsLTyClDeclBinders"><span class="hs-identifier hs-var hs-var">hsLTyClDeclBinders</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621680869138"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869138"><span class="hs-identifier hs-var">loc</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Decls.html#FamDecl"><span class="hs-identifier hs-type">FamDecl</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">tcdFam :: forall pass. TyClDecl pass -&gt; FamilyDecl pass
</span><a href="GHC.Hs.Decls.html#tcdFam"><span class="hs-identifier hs-var">tcdFam</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Hs.Decls.html#FamilyDecl"><span class="hs-identifier hs-type">FamilyDecl</span></a></span><span>
</span><span id="line-1156"></span><span>                                            </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">fdLName :: forall pass. FamilyDecl pass -&gt; Located (IdP pass)
</span><a href="GHC.Hs.Decls.html#fdLName"><span class="hs-identifier hs-var">fdLName</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869133"><span class="annot"><span class="annottext">IdP (GhcPass p)
</span><a href="#local-6989586621680869133"><span class="hs-identifier hs-var">name</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-special">}</span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-1157"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="hs-special">[</span><span class="annot"><span class="annottext">SrcSpan -&gt; IdGhcP p -&gt; GenLocated SrcSpan (IdGhcP p)
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869138"><span class="hs-identifier hs-var">loc</span></a></span><span> </span><span class="annot"><span class="annottext">IdGhcP p
IdP (GhcPass p)
</span><a href="#local-6989586621680869133"><span class="hs-identifier hs-var">name</span></a></span><span class="hs-special">]</span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">)</span><span>
</span><span id="line-1158"></span><span class="annot"><a href="GHC.Hs.Utils.html#hsLTyClDeclBinders"><span class="hs-identifier hs-var">hsLTyClDeclBinders</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621680869132"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869132"><span class="hs-identifier hs-var">loc</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Decls.html#SynDecl"><span class="hs-identifier hs-type">SynDecl</span></a></span><span>
</span><span id="line-1159"></span><span>                               </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">tcdLName :: forall pass. TyClDecl pass -&gt; Located (IdP pass)
</span><a href="GHC.Hs.Decls.html#tcdLName"><span class="hs-identifier hs-var">tcdLName</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869129"><span class="annot"><span class="annottext">IdP (GhcPass p)
</span><a href="#local-6989586621680869129"><span class="hs-identifier hs-var">name</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-1160"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="hs-special">[</span><span class="annot"><span class="annottext">SrcSpan -&gt; IdGhcP p -&gt; GenLocated SrcSpan (IdGhcP p)
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869132"><span class="hs-identifier hs-var">loc</span></a></span><span> </span><span class="annot"><span class="annottext">IdGhcP p
IdP (GhcPass p)
</span><a href="#local-6989586621680869129"><span class="hs-identifier hs-var">name</span></a></span><span class="hs-special">]</span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">)</span><span>
</span><span id="line-1161"></span><span class="annot"><a href="GHC.Hs.Utils.html#hsLTyClDeclBinders"><span class="hs-identifier hs-var">hsLTyClDeclBinders</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621680869128"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869128"><span class="hs-identifier hs-var">loc</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Decls.html#ClassDecl"><span class="hs-identifier hs-type">ClassDecl</span></a></span><span>
</span><span id="line-1162"></span><span>                               </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">tcdLName :: forall pass. TyClDecl pass -&gt; Located (IdP pass)
</span><a href="GHC.Hs.Decls.html#tcdLName"><span class="hs-identifier hs-var">tcdLName</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869126"><span class="annot"><span class="annottext">IdP (GhcPass p)
</span><a href="#local-6989586621680869126"><span class="hs-identifier hs-var">cls_name</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-1163"></span><span>                               </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">tcdSigs :: forall pass. TyClDecl pass -&gt; [LSig pass]
</span><a href="GHC.Hs.Decls.html#tcdSigs"><span class="hs-identifier hs-var">tcdSigs</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869124"><span class="annot"><span class="annottext">[LSig (GhcPass p)]
</span><a href="#local-6989586621680869124"><span class="hs-identifier hs-var">sigs</span></a></span></span><span>
</span><span id="line-1164"></span><span>                               </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">tcdATs :: forall pass. TyClDecl pass -&gt; [LFamilyDecl pass]
</span><a href="GHC.Hs.Decls.html#tcdATs"><span class="hs-identifier hs-var">tcdATs</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869122"><span class="annot"><span class="annottext">[LFamilyDecl (GhcPass p)]
</span><a href="#local-6989586621680869122"><span class="hs-identifier hs-var">ats</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-1165"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; IdGhcP p -&gt; GenLocated SrcSpan (IdGhcP p)
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869128"><span class="hs-identifier hs-var">loc</span></a></span><span> </span><span class="annot"><span class="annottext">IdGhcP p
IdP (GhcPass p)
</span><a href="#local-6989586621680869126"><span class="hs-identifier hs-var">cls_name</span></a></span><span> </span><span class="annot"><span class="annottext">GenLocated SrcSpan (IdGhcP p)
-&gt; [GenLocated SrcSpan (IdGhcP p)]
-&gt; [GenLocated SrcSpan (IdGhcP p)]
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span>
</span><span id="line-1166"></span><span>     </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; IdGhcP p -&gt; GenLocated SrcSpan (IdGhcP p)
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869121"><span class="hs-identifier hs-var">fam_loc</span></a></span><span> </span><span class="annot"><span class="annottext">IdGhcP p
IdP (GhcPass p)
</span><a href="#local-6989586621680869120"><span class="hs-identifier hs-var">fam_name</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621680869121"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869121"><span class="hs-identifier hs-var">fam_loc</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Decls.html#FamilyDecl"><span class="hs-identifier hs-type">FamilyDecl</span></a></span><span>
</span><span id="line-1167"></span><span>                                        </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">fdLName :: forall pass. FamilyDecl pass -&gt; Located (IdP pass)
</span><a href="GHC.Hs.Decls.html#fdLName"><span class="hs-identifier hs-var">fdLName</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869120"><span class="annot"><span class="annottext">IdP (GhcPass p)
</span><a href="#local-6989586621680869120"><span class="hs-identifier hs-var">fam_name</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[LFamilyDecl (GhcPass p)]
</span><a href="#local-6989586621680869122"><span class="hs-identifier hs-var">ats</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-1168"></span><span>     </span><span class="annot"><span class="annottext">[GenLocated SrcSpan (IdGhcP p)]
-&gt; [GenLocated SrcSpan (IdGhcP p)]
-&gt; [GenLocated SrcSpan (IdGhcP p)]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span>
</span><span id="line-1169"></span><span>     </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; IdGhcP p -&gt; GenLocated SrcSpan (IdGhcP p)
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869119"><span class="hs-identifier hs-var">mem_loc</span></a></span><span> </span><span class="annot"><span class="annottext">IdGhcP p
</span><a href="#local-6989586621680869118"><span class="hs-identifier hs-var">mem_name</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621680869119"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869119"><span class="hs-identifier hs-var">mem_loc</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#ClassOpSig"><span class="hs-identifier hs-type">ClassOpSig</span></a></span><span> </span><span class="annot"><span class="annottext">XClassOpSig (GhcPass p)
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span id="local-6989586621680869117"><span class="annot"><span class="annottext">[GenLocated SrcSpan (IdP (GhcPass p))]
</span><a href="#local-6989586621680869117"><span class="hs-identifier hs-var">ns</span></a></span></span><span> </span><span class="annot"><span class="annottext">LHsSigType (GhcPass p)
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[LSig (GhcPass p)]
</span><a href="#local-6989586621680869124"><span class="hs-identifier hs-var">sigs</span></a></span><span>
</span><span id="line-1170"></span><span>                          </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869118"><span class="annot"><span class="annottext">IdGhcP p
</span><a href="#local-6989586621680869118"><span class="hs-identifier hs-var">mem_name</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[GenLocated SrcSpan (IdGhcP p)]
[GenLocated SrcSpan (IdP (GhcPass p))]
</span><a href="#local-6989586621680869117"><span class="hs-identifier hs-var">ns</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-1171"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">)</span><span>
</span><span id="line-1172"></span><span class="annot"><a href="GHC.Hs.Utils.html#hsLTyClDeclBinders"><span class="hs-identifier hs-var">hsLTyClDeclBinders</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621680869116"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869116"><span class="hs-identifier hs-var">loc</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Decls.html#DataDecl"><span class="hs-identifier hs-type">DataDecl</span></a></span><span>    </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">tcdLName :: forall pass. TyClDecl pass -&gt; Located (IdP pass)
</span><a href="GHC.Hs.Decls.html#tcdLName"><span class="hs-identifier hs-var">tcdLName</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869114"><span class="annot"><span class="annottext">IdP (GhcPass p)
</span><a href="#local-6989586621680869114"><span class="hs-identifier hs-var">name</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-1173"></span><span>                                       </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">tcdDataDefn :: forall pass. TyClDecl pass -&gt; HsDataDefn pass
</span><a href="GHC.Hs.Decls.html#tcdDataDefn"><span class="hs-identifier hs-var">tcdDataDefn</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869112"><span class="annot"><span class="annottext">HsDataDefn (GhcPass p)
</span><a href="#local-6989586621680869112"><span class="hs-identifier hs-var">defn</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-1174"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span> </span><span class="hs-special">(</span><span id="local-6989586621680869111"><span class="annot"><span class="annottext">[GenLocated SrcSpan (IdGhcP p)]
</span><a href="#local-6989586621680869111"><span class="hs-identifier hs-var">xs</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680869110"><span class="annot"><span class="annottext">[LFieldOcc (GhcPass p)]
</span><a href="#local-6989586621680869110"><span class="hs-identifier hs-var">ys</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; IdGhcP p -&gt; GenLocated SrcSpan (IdGhcP p)
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869116"><span class="hs-identifier hs-var">loc</span></a></span><span> </span><span class="annot"><span class="annottext">IdGhcP p
IdP (GhcPass p)
</span><a href="#local-6989586621680869114"><span class="hs-identifier hs-var">name</span></a></span><span> </span><span class="annot"><span class="annottext">GenLocated SrcSpan (IdGhcP p)
-&gt; [GenLocated SrcSpan (IdGhcP p)]
-&gt; [GenLocated SrcSpan (IdGhcP p)]
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span> </span><span class="annot"><span class="annottext">[GenLocated SrcSpan (IdGhcP p)]
</span><a href="#local-6989586621680869111"><span class="hs-identifier hs-var">xs</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">[LFieldOcc (GhcPass p)]
</span><a href="#local-6989586621680869110"><span class="hs-identifier hs-var">ys</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(([GenLocated SrcSpan (IdGhcP p)], [LFieldOcc (GhcPass p)])
 -&gt; ([GenLocated SrcSpan (IdGhcP p)], [LFieldOcc (GhcPass p)]))
-&gt; ([GenLocated SrcSpan (IdGhcP p)], [LFieldOcc (GhcPass p)])
-&gt; ([GenLocated SrcSpan (IdGhcP p)], [LFieldOcc (GhcPass p)])
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">HsDataDefn (GhcPass p)
-&gt; ([GenLocated SrcSpan (IdP (GhcPass p))],
    [LFieldOcc (GhcPass p)])
forall (p :: Pass).
IsPass p =&gt;
HsDataDefn (GhcPass p)
-&gt; ([Located (IdP (GhcPass p))], [LFieldOcc (GhcPass p)])
</span><a href="GHC.Hs.Utils.html#hsDataDefnBinders"><span class="hs-identifier hs-var">hsDataDefnBinders</span></a></span><span> </span><span class="annot"><span class="annottext">HsDataDefn (GhcPass p)
</span><a href="#local-6989586621680869112"><span class="hs-identifier hs-var">defn</span></a></span><span>
</span><span id="line-1175"></span><span>
</span><span id="line-1176"></span><span>
</span><span id="line-1177"></span><span class="hs-comment">-------------------</span><span>
</span><span id="line-1178"></span><span id="local-6989586621680870264"><span class="annot"><a href="GHC.Hs.Utils.html#hsForeignDeclsBinders"><span class="hs-identifier hs-type">hsForeignDeclsBinders</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Decls.html#LForeignDecl"><span class="hs-identifier hs-type">LForeignDecl</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870264"><span class="hs-identifier hs-type">pass</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870264"><span class="hs-identifier hs-type">pass</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span></span><span>
</span><span id="line-1179"></span><span class="hs-comment">-- ^ See Note [SrcSpan for binders]</span><span>
</span><span id="line-1180"></span><span id="hsForeignDeclsBinders"><span class="annot"><span class="annottext">hsForeignDeclsBinders :: forall pass. [LForeignDecl pass] -&gt; [Located (IdP pass)]
</span><a href="GHC.Hs.Utils.html#hsForeignDeclsBinders"><span class="hs-identifier hs-var hs-var">hsForeignDeclsBinders</span></a></span></span><span> </span><span id="local-6989586621680869108"><span class="annot"><span class="annottext">[LForeignDecl pass]
</span><a href="#local-6989586621680869108"><span class="hs-identifier hs-var">foreign_decls</span></a></span></span><span>
</span><span id="line-1181"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; IdP pass -&gt; Located (IdP pass)
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869107"><span class="hs-identifier hs-var">decl_loc</span></a></span><span> </span><span class="annot"><span class="annottext">IdP pass
</span><a href="#local-6989586621680869106"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-1182"></span><span>    </span><span class="hs-glyph">|</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621680869107"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869107"><span class="hs-identifier hs-var">decl_loc</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Decls.html#ForeignImport"><span class="hs-identifier hs-type">ForeignImport</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">fd_name :: forall pass. ForeignDecl pass -&gt; Located (IdP pass)
</span><a href="GHC.Hs.Decls.html#fd_name"><span class="hs-identifier hs-var">fd_name</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869106"><span class="annot"><span class="annottext">IdP pass
</span><a href="#local-6989586621680869106"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-1183"></span><span>        </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[LForeignDecl pass]
</span><a href="#local-6989586621680869108"><span class="hs-identifier hs-var">foreign_decls</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-1184"></span><span>
</span><span id="line-1185"></span><span>
</span><span id="line-1186"></span><span class="hs-comment">-------------------</span><span>
</span><span id="line-1187"></span><span id="local-6989586621680870236"><span class="annot"><a href="GHC.Hs.Utils.html#hsPatSynSelectors"><span class="hs-identifier hs-type">hsPatSynSelectors</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#HsValBinds"><span class="hs-identifier hs-type">HsValBinds</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870236"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870236"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span></span><span>
</span><span id="line-1188"></span><span class="hs-comment">-- ^ Collects record pattern-synonym selectors only; the pattern synonym</span><span>
</span><span id="line-1189"></span><span class="hs-comment">-- names are collected by 'collectHsValBinders'.</span><span>
</span><span id="line-1190"></span><span id="hsPatSynSelectors"><span class="annot"><span class="annottext">hsPatSynSelectors :: forall (p :: Pass). HsValBinds (GhcPass p) -&gt; [IdP (GhcPass p)]
</span><a href="GHC.Hs.Utils.html#hsPatSynSelectors"><span class="hs-identifier hs-var hs-var">hsPatSynSelectors</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#ValBinds"><span class="hs-identifier hs-type">ValBinds</span></a></span><span> </span><span class="annot"><span class="annottext">XValBinds (GhcPass p) (GhcPass p)
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">LHsBindsLR (GhcPass p) (GhcPass p)
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">[LSig (GhcPass p)]
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; [IdGhcP p]
forall a. String -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#panic"><span class="hs-identifier hs-var">panic</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;hsPatSynSelectors&quot;</span></span><span>
</span><span id="line-1191"></span><span class="annot"><a href="GHC.Hs.Utils.html#hsPatSynSelectors"><span class="hs-identifier hs-var">hsPatSynSelectors</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#XValBindsLR"><span class="hs-identifier hs-type">XValBindsLR</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#NValBinds"><span class="hs-identifier hs-type">NValBinds</span></a></span><span> </span><span id="local-6989586621680869102"><span class="annot"><span class="annottext">[(RecFlag, LHsBindsLR (GhcPass p) (GhcPass p))]
</span><a href="#local-6989586621680869102"><span class="hs-identifier hs-var">binds</span></a></span></span><span> </span><span class="annot"><span class="annottext">[LSig GhcRn]
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-1192"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(LHsBind (GhcPass p) -&gt; [IdGhcP p] -&gt; [IdGhcP p])
-&gt; [IdGhcP p] -&gt; LHsBindsLR (GhcPass p) (GhcPass p) -&gt; [IdGhcP p]
forall (t :: * -&gt; *) a b.
Foldable t =&gt;
(a -&gt; b -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldr"><span class="hs-identifier hs-var">foldr</span></a></span><span> </span><span class="annot"><span class="annottext">LHsBind (GhcPass p) -&gt; [IdGhcP p] -&gt; [IdGhcP p]
forall p. LHsBind p -&gt; [IdP p] -&gt; [IdP p]
</span><a href="GHC.Hs.Utils.html#addPatSynSelector"><span class="hs-identifier hs-var">addPatSynSelector</span></a></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="annot"><span class="annottext">(LHsBindsLR (GhcPass p) (GhcPass p) -&gt; [IdGhcP p])
-&gt; ([LHsBindsLR (GhcPass p) (GhcPass p)]
    -&gt; LHsBindsLR (GhcPass p) (GhcPass p))
-&gt; [LHsBindsLR (GhcPass p) (GhcPass p)]
-&gt; [IdGhcP p]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">[LHsBindsLR (GhcPass p) (GhcPass p)]
-&gt; LHsBindsLR (GhcPass p) (GhcPass p)
forall a. [Bag a] -&gt; Bag a
</span><a href="GHC.Data.Bag.html#unionManyBags"><span class="hs-identifier hs-var">unionManyBags</span></a></span><span> </span><span class="annot"><span class="annottext">([LHsBindsLR (GhcPass p) (GhcPass p)] -&gt; [IdGhcP p])
-&gt; [LHsBindsLR (GhcPass p) (GhcPass p)] -&gt; [IdGhcP p]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">((RecFlag, LHsBindsLR (GhcPass p) (GhcPass p))
 -&gt; LHsBindsLR (GhcPass p) (GhcPass p))
-&gt; [(RecFlag, LHsBindsLR (GhcPass p) (GhcPass p))]
-&gt; [LHsBindsLR (GhcPass p) (GhcPass p)]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">(RecFlag, LHsBindsLR (GhcPass p) (GhcPass p))
-&gt; LHsBindsLR (GhcPass p) (GhcPass p)
forall a b. (a, b) -&gt; b
</span><a href="../../base/src/Data.Tuple.html#snd"><span class="hs-identifier hs-var">snd</span></a></span><span> </span><span class="annot"><span class="annottext">[(RecFlag, LHsBindsLR (GhcPass p) (GhcPass p))]
</span><a href="#local-6989586621680869102"><span class="hs-identifier hs-var">binds</span></a></span><span>
</span><span id="line-1193"></span><span>
</span><span id="line-1194"></span><span id="local-6989586621680870234"><span class="annot"><a href="GHC.Hs.Utils.html#addPatSynSelector"><span class="hs-identifier hs-type">addPatSynSelector</span></a></span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#LHsBind"><span class="hs-identifier hs-type">LHsBind</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870234"><span class="hs-identifier hs-type">p</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870234"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870234"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">]</span></span><span>
</span><span id="line-1195"></span><span id="addPatSynSelector"><span class="annot"><span class="annottext">addPatSynSelector :: forall p. LHsBind p -&gt; [IdP p] -&gt; [IdP p]
</span><a href="GHC.Hs.Utils.html#addPatSynSelector"><span class="hs-identifier hs-var hs-var">addPatSynSelector</span></a></span></span><span> </span><span id="local-6989586621680869099"><span class="annot"><span class="annottext">LHsBind p
</span><a href="#local-6989586621680869099"><span class="hs-identifier hs-var">bind</span></a></span></span><span> </span><span id="local-6989586621680869098"><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869098"><span class="hs-identifier hs-var">sels</span></a></span></span><span>
</span><span id="line-1196"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#PatSynBind"><span class="hs-identifier hs-type">PatSynBind</span></a></span><span> </span><span class="annot"><span class="annottext">XPatSynBind p p
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#PSB"><span class="hs-identifier hs-type">PSB</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">psb_args :: forall idL idR.
PatSynBind idL idR -&gt; HsPatSynDetails (Located (IdP idR))
</span><a href="GHC.Hs.Binds.html#psb_args"><span class="hs-identifier hs-var">psb_args</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Hs.Type.html#RecCon"><span class="hs-identifier hs-type">RecCon</span></a></span><span> </span><span id="local-6989586621680869096"><span class="annot"><span class="annottext">[RecordPatSynField (Located (IdP p))]
</span><a href="#local-6989586621680869096"><span class="hs-keyword hs-var">as</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">LHsBind p -&gt; HsBindLR p p
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span> </span><span class="annot"><span class="annottext">LHsBind p
</span><a href="#local-6989586621680869099"><span class="hs-identifier hs-var">bind</span></a></span><span>
</span><span id="line-1197"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(RecordPatSynField (Located (IdP p)) -&gt; IdP p)
-&gt; [RecordPatSynField (Located (IdP p))] -&gt; [IdP p]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Located (IdP p) -&gt; IdP p
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Located (IdP p) -&gt; IdP p)
-&gt; (RecordPatSynField (Located (IdP p)) -&gt; Located (IdP p))
-&gt; RecordPatSynField (Located (IdP p))
-&gt; IdP p
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">RecordPatSynField (Located (IdP p)) -&gt; Located (IdP p)
forall a. RecordPatSynField a -&gt; a
</span><a href="GHC.Hs.Binds.html#recordPatSynSelectorId"><span class="hs-identifier hs-var hs-var">recordPatSynSelectorId</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[RecordPatSynField (Located (IdP p))]
</span><a href="#local-6989586621680869096"><span class="hs-keyword hs-var">as</span></a></span><span> </span><span class="annot"><span class="annottext">[IdP p] -&gt; [IdP p] -&gt; [IdP p]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869098"><span class="hs-identifier hs-var">sels</span></a></span><span>
</span><span id="line-1198"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[IdP p]
</span><a href="#local-6989586621680869098"><span class="hs-identifier hs-var">sels</span></a></span><span>
</span><span id="line-1199"></span><span>
</span><span id="line-1200"></span><span id="local-6989586621680870227"><span class="annot"><a href="GHC.Hs.Utils.html#getPatSynBinds"><span class="hs-identifier hs-type">getPatSynBinds</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Basic.html#RecFlag"><span class="hs-identifier hs-type">RecFlag</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#LHsBinds"><span class="hs-identifier hs-type">LHsBinds</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870227"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Binds.html#PatSynBind"><span class="hs-identifier hs-type">PatSynBind</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870227"><span class="hs-identifier hs-type">id</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870227"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">]</span></span><span>
</span><span id="line-1201"></span><span id="getPatSynBinds"><span class="annot"><span class="annottext">getPatSynBinds :: forall id. [(RecFlag, LHsBinds id)] -&gt; [PatSynBind id id]
</span><a href="GHC.Hs.Utils.html#getPatSynBinds"><span class="hs-identifier hs-var hs-var">getPatSynBinds</span></a></span></span><span> </span><span id="local-6989586621680869094"><span class="annot"><span class="annottext">[(RecFlag, LHsBinds id)]
</span><a href="#local-6989586621680869094"><span class="hs-identifier hs-var">binds</span></a></span></span><span>
</span><span id="line-1202"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">PatSynBind id id
</span><a href="#local-6989586621680869093"><span class="hs-identifier hs-var">psb</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RecFlag
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680869092"><span class="annot"><span class="annottext">LHsBinds id
</span><a href="#local-6989586621680869092"><span class="hs-identifier hs-var">lbinds</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[(RecFlag, LHsBinds id)]
</span><a href="#local-6989586621680869094"><span class="hs-identifier hs-var">binds</span></a></span><span>
</span><span id="line-1203"></span><span>          </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#PatSynBind"><span class="hs-identifier hs-type">PatSynBind</span></a></span><span> </span><span class="annot"><span class="annottext">XPatSynBind id id
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869093"><span class="annot"><span class="annottext">PatSynBind id id
</span><a href="#local-6989586621680869093"><span class="hs-identifier hs-var">psb</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">LHsBinds id -&gt; [GenLocated SrcSpan (HsBindLR id id)]
forall a. Bag a -&gt; [a]
</span><a href="GHC.Data.Bag.html#bagToList"><span class="hs-identifier hs-var">bagToList</span></a></span><span> </span><span class="annot"><span class="annottext">LHsBinds id
</span><a href="#local-6989586621680869092"><span class="hs-identifier hs-var">lbinds</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-1204"></span><span>
</span><span id="line-1205"></span><span class="hs-comment">-------------------</span><span>
</span><span id="line-1206"></span><span id="local-6989586621680870255"><span class="annot"><a href="GHC.Hs.Utils.html#hsLInstDeclBinders"><span class="hs-identifier hs-type">hsLInstDeclBinders</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#IsPass"><span class="hs-identifier hs-type">IsPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870255"><span class="hs-identifier hs-type">p</span></a></span><span>
</span><span id="line-1207"></span><span>                   </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Decls.html#LInstDecl"><span class="hs-identifier hs-type">LInstDecl</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870255"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1208"></span><span>                   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870255"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">]</span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Type.html#LFieldOcc"><span class="hs-identifier hs-type">LFieldOcc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870255"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span class="hs-special">)</span></span><span>
</span><span id="line-1209"></span><span id="hsLInstDeclBinders"><span class="annot"><span class="annottext">hsLInstDeclBinders :: forall (p :: Pass).
IsPass p =&gt;
LInstDecl (GhcPass p)
-&gt; ([Located (IdP (GhcPass p))], [LFieldOcc (GhcPass p)])
</span><a href="GHC.Hs.Utils.html#hsLInstDeclBinders"><span class="hs-identifier hs-var hs-var">hsLInstDeclBinders</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Decls.html#ClsInstD"><span class="hs-identifier hs-type">ClsInstD</span></a></span><span>
</span><span id="line-1210"></span><span>                             </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">cid_inst :: forall pass. InstDecl pass -&gt; ClsInstDecl pass
</span><a href="GHC.Hs.Decls.html#cid_inst"><span class="hs-identifier hs-var">cid_inst</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Hs.Decls.html#ClsInstDecl"><span class="hs-identifier hs-type">ClsInstDecl</span></a></span><span>
</span><span id="line-1211"></span><span>                                          </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">cid_datafam_insts :: forall pass. ClsInstDecl pass -&gt; [LDataFamInstDecl pass]
</span><a href="GHC.Hs.Decls.html#cid_datafam_insts"><span class="hs-identifier hs-var">cid_datafam_insts</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869078"><span class="annot"><span class="annottext">[LDataFamInstDecl (GhcPass p)]
</span><a href="#local-6989586621680869078"><span class="hs-identifier hs-var">dfis</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">}</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-1212"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(LDataFamInstDecl (GhcPass p)
 -&gt; ([Located (IdGhcP p)], [LFieldOcc (GhcPass p)]))
-&gt; [LDataFamInstDecl (GhcPass p)]
-&gt; ([Located (IdGhcP p)], [LFieldOcc (GhcPass p)])
forall (t :: * -&gt; *) m a.
(Foldable t, Monoid m) =&gt;
(a -&gt; m) -&gt; t a -&gt; m
</span><a href="../../base/src/Data.Foldable.html#foldMap"><span class="hs-identifier hs-var">foldMap</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">DataFamInstDecl (GhcPass p)
-&gt; ([Located (IdGhcP p)], [LFieldOcc (GhcPass p)])
forall (p :: Pass).
IsPass p =&gt;
DataFamInstDecl (GhcPass p)
-&gt; ([Located (IdP (GhcPass p))], [LFieldOcc (GhcPass p)])
</span><a href="GHC.Hs.Utils.html#hsDataFamInstBinders"><span class="hs-identifier hs-var">hsDataFamInstBinders</span></a></span><span> </span><span class="annot"><span class="annottext">(DataFamInstDecl (GhcPass p)
 -&gt; ([Located (IdGhcP p)], [LFieldOcc (GhcPass p)]))
-&gt; (LDataFamInstDecl (GhcPass p) -&gt; DataFamInstDecl (GhcPass p))
-&gt; LDataFamInstDecl (GhcPass p)
-&gt; ([Located (IdGhcP p)], [LFieldOcc (GhcPass p)])
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">LDataFamInstDecl (GhcPass p) -&gt; DataFamInstDecl (GhcPass p)
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[LDataFamInstDecl (GhcPass p)]
</span><a href="#local-6989586621680869078"><span class="hs-identifier hs-var">dfis</span></a></span><span>
</span><span id="line-1213"></span><span class="annot"><a href="GHC.Hs.Utils.html#hsLInstDeclBinders"><span class="hs-identifier hs-var">hsLInstDeclBinders</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Decls.html#DataFamInstD"><span class="hs-identifier hs-type">DataFamInstD</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">dfid_inst :: forall pass. InstDecl pass -&gt; DataFamInstDecl pass
</span><a href="GHC.Hs.Decls.html#dfid_inst"><span class="hs-identifier hs-var">dfid_inst</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869075"><span class="annot"><span class="annottext">DataFamInstDecl (GhcPass p)
</span><a href="#local-6989586621680869075"><span class="hs-identifier hs-var">fi</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-1214"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">DataFamInstDecl (GhcPass p)
-&gt; ([GenLocated SrcSpan (IdP (GhcPass p))],
    [LFieldOcc (GhcPass p)])
forall (p :: Pass).
IsPass p =&gt;
DataFamInstDecl (GhcPass p)
-&gt; ([Located (IdP (GhcPass p))], [LFieldOcc (GhcPass p)])
</span><a href="GHC.Hs.Utils.html#hsDataFamInstBinders"><span class="hs-identifier hs-var">hsDataFamInstBinders</span></a></span><span> </span><span class="annot"><span class="annottext">DataFamInstDecl (GhcPass p)
</span><a href="#local-6989586621680869075"><span class="hs-identifier hs-var">fi</span></a></span><span>
</span><span id="line-1215"></span><span class="annot"><a href="GHC.Hs.Utils.html#hsLInstDeclBinders"><span class="hs-identifier hs-var">hsLInstDeclBinders</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Decls.html#TyFamInstD"><span class="hs-identifier hs-type">TyFamInstD</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">([GenLocated SrcSpan (IdP (GhcPass p))], [LFieldOcc (GhcPass p)])
forall a. Monoid a =&gt; a
</span><a href="../../base/src/GHC.Base.html#mempty"><span class="hs-identifier hs-var">mempty</span></a></span><span>
</span><span id="line-1216"></span><span>
</span><span id="line-1217"></span><span class="hs-comment">-------------------</span><span>
</span><span id="line-1218"></span><span class="hs-comment">-- | the 'SrcLoc' returned are for the whole declarations, not just the names</span><span>
</span><span id="line-1219"></span><span id="local-6989586621680870217"><span class="annot"><a href="GHC.Hs.Utils.html#hsDataFamInstBinders"><span class="hs-identifier hs-type">hsDataFamInstBinders</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#IsPass"><span class="hs-identifier hs-type">IsPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870217"><span class="hs-identifier hs-type">p</span></a></span><span>
</span><span id="line-1220"></span><span>                     </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Decls.html#DataFamInstDecl"><span class="hs-identifier hs-type">DataFamInstDecl</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870217"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1221"></span><span>                     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870217"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">]</span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Type.html#LFieldOcc"><span class="hs-identifier hs-type">LFieldOcc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870217"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span class="hs-special">)</span></span><span>
</span><span id="line-1222"></span><span id="hsDataFamInstBinders"><span class="annot"><span class="annottext">hsDataFamInstBinders :: forall (p :: Pass).
IsPass p =&gt;
DataFamInstDecl (GhcPass p)
-&gt; ([Located (IdP (GhcPass p))], [LFieldOcc (GhcPass p)])
</span><a href="GHC.Hs.Utils.html#hsDataFamInstBinders"><span class="hs-identifier hs-var hs-var">hsDataFamInstBinders</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Decls.html#DataFamInstDecl"><span class="hs-identifier hs-type">DataFamInstDecl</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">dfid_eqn :: forall pass.
DataFamInstDecl pass -&gt; FamInstEqn pass (HsDataDefn pass)
</span><a href="GHC.Hs.Decls.html#dfid_eqn"><span class="hs-identifier hs-var">dfid_eqn</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Hs.Type.html#HsIB"><span class="hs-identifier hs-type">HsIB</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">hsib_body :: forall pass thing. HsImplicitBndrs pass thing -&gt; thing
</span><a href="GHC.Hs.Type.html#hsib_body"><span class="hs-identifier hs-var">hsib_body</span></a></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-1223"></span><span>                       </span><span class="annot"><a href="GHC.Hs.Decls.html#FamEqn"><span class="hs-identifier hs-type">FamEqn</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">feqn_rhs :: forall pass rhs. FamEqn pass rhs -&gt; rhs
</span><a href="GHC.Hs.Decls.html#feqn_rhs"><span class="hs-identifier hs-var">feqn_rhs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869065"><span class="annot"><span class="annottext">HsDataDefn (GhcPass p)
</span><a href="#local-6989586621680869065"><span class="hs-identifier hs-var">defn</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">}</span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-1224"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsDataDefn (GhcPass p)
-&gt; ([Located (IdP (GhcPass p))], [LFieldOcc (GhcPass p)])
forall (p :: Pass).
IsPass p =&gt;
HsDataDefn (GhcPass p)
-&gt; ([Located (IdP (GhcPass p))], [LFieldOcc (GhcPass p)])
</span><a href="GHC.Hs.Utils.html#hsDataDefnBinders"><span class="hs-identifier hs-var">hsDataDefnBinders</span></a></span><span> </span><span class="annot"><span class="annottext">HsDataDefn (GhcPass p)
</span><a href="#local-6989586621680869065"><span class="hs-identifier hs-var">defn</span></a></span><span>
</span><span id="line-1225"></span><span>  </span><span class="hs-comment">-- There can't be repeated symbols because only data instances have binders</span><span>
</span><span id="line-1226"></span><span>
</span><span id="line-1227"></span><span class="hs-comment">-------------------</span><span>
</span><span id="line-1228"></span><span class="hs-comment">-- | the 'SrcLoc' returned are for the whole declarations, not just the names</span><span>
</span><span id="line-1229"></span><span id="local-6989586621680870240"><span class="annot"><a href="GHC.Hs.Utils.html#hsDataDefnBinders"><span class="hs-identifier hs-type">hsDataDefnBinders</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#IsPass"><span class="hs-identifier hs-type">IsPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870240"><span class="hs-identifier hs-type">p</span></a></span><span>
</span><span id="line-1230"></span><span>                  </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Decls.html#HsDataDefn"><span class="hs-identifier hs-type">HsDataDefn</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870240"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1231"></span><span>                  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870240"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">]</span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Type.html#LFieldOcc"><span class="hs-identifier hs-type">LFieldOcc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870240"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span class="hs-special">)</span></span><span>
</span><span id="line-1232"></span><span id="hsDataDefnBinders"><span class="annot"><span class="annottext">hsDataDefnBinders :: forall (p :: Pass).
IsPass p =&gt;
HsDataDefn (GhcPass p)
-&gt; ([Located (IdP (GhcPass p))], [LFieldOcc (GhcPass p)])
</span><a href="GHC.Hs.Utils.html#hsDataDefnBinders"><span class="hs-identifier hs-var hs-var">hsDataDefnBinders</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Decls.html#HsDataDefn"><span class="hs-identifier hs-type">HsDataDefn</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">dd_cons :: forall pass. HsDataDefn pass -&gt; [LConDecl pass]
</span><a href="GHC.Hs.Decls.html#dd_cons"><span class="hs-identifier hs-var">dd_cons</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869060"><span class="annot"><span class="annottext">[LConDecl (GhcPass p)]
</span><a href="#local-6989586621680869060"><span class="hs-identifier hs-var">cons</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-1233"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[LConDecl (GhcPass p)]
-&gt; ([Located (IdP (GhcPass p))], [LFieldOcc (GhcPass p)])
forall (p :: Pass).
IsPass p =&gt;
[LConDecl (GhcPass p)]
-&gt; ([Located (IdP (GhcPass p))], [LFieldOcc (GhcPass p)])
</span><a href="GHC.Hs.Utils.html#hsConDeclsBinders"><span class="hs-identifier hs-var">hsConDeclsBinders</span></a></span><span> </span><span class="annot"><span class="annottext">[LConDecl (GhcPass p)]
</span><a href="#local-6989586621680869060"><span class="hs-identifier hs-var">cons</span></a></span><span>
</span><span id="line-1234"></span><span>  </span><span class="hs-comment">-- See Note [Binders in family instances]</span><span>
</span><span id="line-1235"></span><span>
</span><span id="line-1236"></span><span class="hs-comment">-------------------</span><span>
</span><span id="line-1237"></span><span class="hs-keyword">type</span><span> </span><span id="Seen"><span class="annot"><a href="GHC.Hs.Utils.html#Seen"><span class="hs-identifier hs-var">Seen</span></a></span></span><span> </span><span id="local-6989586621680869058"><span class="annot"><a href="#local-6989586621680869058"><span class="hs-identifier hs-type">p</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Type.html#LFieldOcc"><span class="hs-identifier hs-type">LFieldOcc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680869058"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Type.html#LFieldOcc"><span class="hs-identifier hs-type">LFieldOcc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680869058"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-1238"></span><span>                 </span><span class="hs-comment">-- Filters out ones that have already been seen</span><span>
</span><span id="line-1239"></span><span>
</span><span id="line-1240"></span><span class="annot"><a href="GHC.Hs.Utils.html#hsConDeclsBinders"><span class="hs-identifier hs-type">hsConDeclsBinders</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-keyword">forall</span><span> </span><span id="local-6989586621680870204"><span class="annot"><a href="#local-6989586621680870204"><span class="hs-identifier hs-type">p</span></a></span></span><span class="hs-operator">.</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#IsPass"><span class="hs-identifier hs-type">IsPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870204"><span class="hs-identifier hs-type">p</span></a></span><span>
</span><span id="line-1241"></span><span>                  </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Decls.html#LConDecl"><span class="hs-identifier hs-type">LConDecl</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870204"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-1242"></span><span>                  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870204"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">]</span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Type.html#LFieldOcc"><span class="hs-identifier hs-type">LFieldOcc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870204"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span class="hs-special">)</span><span>
</span><span id="line-1243"></span><span>   </span><span class="hs-comment">-- See hsLTyClDeclBinders for what this does</span><span>
</span><span id="line-1244"></span><span>   </span><span class="hs-comment">-- The function is boringly complicated because of the records</span><span>
</span><span id="line-1245"></span><span>   </span><span class="hs-comment">-- And since we only have equality, we have to be a little careful</span><span>
</span><span id="line-1246"></span><span id="hsConDeclsBinders"><span class="annot"><span class="annottext">hsConDeclsBinders :: forall (p :: Pass).
IsPass p =&gt;
[LConDecl (GhcPass p)]
-&gt; ([Located (IdP (GhcPass p))], [LFieldOcc (GhcPass p)])
</span><a href="GHC.Hs.Utils.html#hsConDeclsBinders"><span class="hs-identifier hs-var hs-var">hsConDeclsBinders</span></a></span></span><span> </span><span id="local-6989586621680869052"><span class="annot"><span class="annottext">[LConDecl (GhcPass p)]
</span><a href="#local-6989586621680869052"><span class="hs-identifier hs-var">cons</span></a></span></span><span>
</span><span id="line-1247"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Seen p
-&gt; [LConDecl (GhcPass p)]
-&gt; ([Located (IdP (GhcPass p))], [LFieldOcc (GhcPass p)])
</span><a href="#local-6989586621680869051"><span class="hs-identifier hs-var">go</span></a></span><span> </span><span class="annot"><span class="annottext">Seen p
forall a. a -&gt; a
</span><a href="../../base/src/GHC.Base.html#id"><span class="hs-identifier hs-var">id</span></a></span><span> </span><span class="annot"><span class="annottext">[LConDecl (GhcPass p)]
</span><a href="#local-6989586621680869052"><span class="hs-identifier hs-var">cons</span></a></span><span>
</span><span id="line-1248"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-1249"></span><span>    </span><span class="annot"><a href="#local-6989586621680869051"><span class="hs-identifier hs-type">go</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#Seen"><span class="hs-identifier hs-type">Seen</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870204"><span class="hs-identifier hs-type">p</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Decls.html#LConDecl"><span class="hs-identifier hs-type">LConDecl</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870204"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-1250"></span><span>       </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870204"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">]</span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Type.html#LFieldOcc"><span class="hs-identifier hs-type">LFieldOcc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870204"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span class="hs-special">)</span><span>
</span><span id="line-1251"></span><span>    </span><span id="local-6989586621680869051"><span class="annot"><span class="annottext">go :: Seen p
-&gt; [LConDecl (GhcPass p)]
-&gt; ([Located (IdP (GhcPass p))], [LFieldOcc (GhcPass p)])
</span><a href="#local-6989586621680869051"><span class="hs-identifier hs-var hs-var">go</span></a></span></span><span> </span><span class="annot"><span class="annottext">Seen p
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">)</span><span>
</span><span id="line-1252"></span><span>    </span><span class="annot"><a href="#local-6989586621680869051"><span class="hs-identifier hs-var">go</span></a></span><span> </span><span id="local-6989586621680869049"><span class="annot"><span class="annottext">Seen p
</span><a href="#local-6989586621680869049"><span class="hs-identifier hs-var">remSeen</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621680869048"><span class="annot"><span class="annottext">LConDecl (GhcPass p)
</span><a href="#local-6989586621680869048"><span class="hs-identifier hs-var">r</span></a></span></span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span id="local-6989586621680869047"><span class="annot"><span class="annottext">[LConDecl (GhcPass p)]
</span><a href="#local-6989586621680869047"><span class="hs-identifier hs-var">rs</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-1253"></span><span>      </span><span class="hs-comment">-- Don't re-mangle the location of field names, because we don't</span><span>
</span><span id="line-1254"></span><span>      </span><span class="hs-comment">-- have a record of the full location of the field declaration anyway</span><span>
</span><span id="line-1255"></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621680869046"><span class="annot"><span class="annottext">loc :: SrcSpan
</span><a href="#local-6989586621680869046"><span class="hs-identifier hs-var hs-var">loc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LConDecl (GhcPass p) -&gt; SrcSpan
forall l e. GenLocated l e -&gt; l
</span><a href="GHC.Types.SrcLoc.html#getLoc"><span class="hs-identifier hs-var">getLoc</span></a></span><span> </span><span class="annot"><span class="annottext">LConDecl (GhcPass p)
</span><a href="#local-6989586621680869048"><span class="hs-identifier hs-var">r</span></a></span><span>
</span><span id="line-1256"></span><span>        </span><span class="hs-keyword">in</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">LConDecl (GhcPass p) -&gt; ConDecl (GhcPass p)
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span> </span><span class="annot"><span class="annottext">LConDecl (GhcPass p)
</span><a href="#local-6989586621680869048"><span class="hs-identifier hs-var">r</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-1257"></span><span>           </span><span class="hs-comment">-- remove only the first occurrence of any seen field in order to</span><span>
</span><span id="line-1258"></span><span>           </span><span class="hs-comment">-- avoid circumventing detection of duplicate fields (#9156)</span><span>
</span><span id="line-1259"></span><span>           </span><span class="annot"><a href="GHC.Hs.Decls.html#ConDeclGADT"><span class="hs-identifier hs-type">ConDeclGADT</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">con_names :: forall pass. ConDecl pass -&gt; [Located (IdP pass)]
</span><a href="GHC.Hs.Decls.html#con_names"><span class="hs-identifier hs-var">con_names</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869043"><span class="annot"><span class="annottext">[Located (IdP (GhcPass p))]
</span><a href="#local-6989586621680869043"><span class="hs-identifier hs-var">names</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">con_args :: forall pass. ConDecl pass -&gt; HsConDeclDetails pass
</span><a href="GHC.Hs.Decls.html#con_args"><span class="hs-identifier hs-var">con_args</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869041"><span class="annot"><span class="annottext">HsConDeclDetails (GhcPass p)
</span><a href="#local-6989586621680869041"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-1260"></span><span>             </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(GenLocated SrcSpan (IdGhcP p) -&gt; GenLocated SrcSpan (IdGhcP p))
-&gt; [GenLocated SrcSpan (IdGhcP p)]
-&gt; [GenLocated SrcSpan (IdGhcP p)]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; IdGhcP p -&gt; GenLocated SrcSpan (IdGhcP p)
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869046"><span class="hs-identifier hs-var">loc</span></a></span><span> </span><span class="annot"><span class="annottext">(IdGhcP p -&gt; GenLocated SrcSpan (IdGhcP p))
-&gt; (GenLocated SrcSpan (IdGhcP p) -&gt; IdGhcP p)
-&gt; GenLocated SrcSpan (IdGhcP p)
-&gt; GenLocated SrcSpan (IdGhcP p)
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">GenLocated SrcSpan (IdGhcP p) -&gt; IdGhcP p
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[GenLocated SrcSpan (IdGhcP p)]
[Located (IdP (GhcPass p))]
</span><a href="#local-6989586621680869043"><span class="hs-identifier hs-var">names</span></a></span><span> </span><span class="annot"><span class="annottext">[GenLocated SrcSpan (IdGhcP p)]
-&gt; [GenLocated SrcSpan (IdGhcP p)]
-&gt; [GenLocated SrcSpan (IdGhcP p)]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">[GenLocated SrcSpan (IdGhcP p)]
</span><a href="#local-6989586621680869040"><span class="hs-identifier hs-var">ns</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">[LFieldOcc (GhcPass p)]
</span><a href="#local-6989586621680869039"><span class="hs-identifier hs-var">flds</span></a></span><span> </span><span class="annot"><span class="annottext">[LFieldOcc (GhcPass p)] -&gt; Seen p
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">[LFieldOcc (GhcPass p)]
</span><a href="#local-6989586621680869038"><span class="hs-identifier hs-var">fs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1261"></span><span>             </span><span class="hs-keyword">where</span><span>
</span><span id="line-1262"></span><span>                </span><span class="hs-special">(</span><span id="local-6989586621680869037"><span class="annot"><span class="annottext">Seen p
</span><a href="#local-6989586621680869037"><span class="hs-identifier hs-var">remSeen'</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680869039"><span class="annot"><span class="annottext">[LFieldOcc (GhcPass p)]
</span><a href="#local-6989586621680869039"><span class="hs-identifier hs-var">flds</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Seen p
-&gt; HsConDeclDetails (GhcPass p)
-&gt; (Seen p, [LFieldOcc (GhcPass p)])
</span><a href="#local-6989586621680869036"><span class="hs-identifier hs-var">get_flds</span></a></span><span> </span><span class="annot"><span class="annottext">Seen p
</span><a href="#local-6989586621680869049"><span class="hs-identifier hs-var">remSeen</span></a></span><span> </span><span class="annot"><span class="annottext">HsConDeclDetails (GhcPass p)
</span><a href="#local-6989586621680869041"><span class="hs-identifier hs-var">args</span></a></span><span>
</span><span id="line-1263"></span><span>                </span><span class="hs-special">(</span><span id="local-6989586621680869040"><span class="annot"><span class="annottext">[GenLocated SrcSpan (IdGhcP p)]
</span><a href="#local-6989586621680869040"><span class="hs-identifier hs-var">ns</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680869038"><span class="annot"><span class="annottext">[LFieldOcc (GhcPass p)]
</span><a href="#local-6989586621680869038"><span class="hs-identifier hs-var">fs</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Seen p
-&gt; [LConDecl (GhcPass p)]
-&gt; ([Located (IdP (GhcPass p))], [LFieldOcc (GhcPass p)])
</span><a href="#local-6989586621680869051"><span class="hs-identifier hs-var">go</span></a></span><span> </span><span class="annot"><span class="annottext">Seen p
</span><a href="#local-6989586621680869037"><span class="hs-identifier hs-var">remSeen'</span></a></span><span> </span><span class="annot"><span class="annottext">[LConDecl (GhcPass p)]
</span><a href="#local-6989586621680869047"><span class="hs-identifier hs-var">rs</span></a></span><span>
</span><span id="line-1264"></span><span>
</span><span id="line-1265"></span><span>           </span><span class="annot"><a href="GHC.Hs.Decls.html#ConDeclH98"><span class="hs-identifier hs-type">ConDeclH98</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">con_name :: forall pass. ConDecl pass -&gt; Located (IdP pass)
</span><a href="GHC.Hs.Decls.html#con_name"><span class="hs-identifier hs-var">con_name</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869033"><span class="annot"><span class="annottext">Located (IdP (GhcPass p))
</span><a href="#local-6989586621680869033"><span class="hs-identifier hs-var">name</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">con_args :: forall pass. ConDecl pass -&gt; HsConDeclDetails pass
</span><a href="GHC.Hs.Decls.html#con_args"><span class="hs-identifier hs-var">con_args</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869032"><span class="annot"><span class="annottext">HsConDeclDetails (GhcPass p)
</span><a href="#local-6989586621680869032"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-1266"></span><span>             </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="hs-special">[</span><span class="annot"><span class="annottext">SrcSpan -&gt; IdGhcP p -&gt; GenLocated SrcSpan (IdGhcP p)
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680869046"><span class="hs-identifier hs-var">loc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">GenLocated SrcSpan (IdGhcP p) -&gt; IdGhcP p
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span> </span><span class="annot"><span class="annottext">GenLocated SrcSpan (IdGhcP p)
Located (IdP (GhcPass p))
</span><a href="#local-6989586621680869033"><span class="hs-identifier hs-var">name</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="annot"><span class="annottext">[GenLocated SrcSpan (IdGhcP p)]
-&gt; [GenLocated SrcSpan (IdGhcP p)]
-&gt; [GenLocated SrcSpan (IdGhcP p)]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">[GenLocated SrcSpan (IdGhcP p)]
</span><a href="#local-6989586621680869031"><span class="hs-identifier hs-var">ns</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">[LFieldOcc (GhcPass p)]
</span><a href="#local-6989586621680869030"><span class="hs-identifier hs-var">flds</span></a></span><span> </span><span class="annot"><span class="annottext">[LFieldOcc (GhcPass p)] -&gt; Seen p
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">[LFieldOcc (GhcPass p)]
</span><a href="#local-6989586621680869029"><span class="hs-identifier hs-var">fs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1267"></span><span>             </span><span class="hs-keyword">where</span><span>
</span><span id="line-1268"></span><span>                </span><span class="hs-special">(</span><span id="local-6989586621680869028"><span class="annot"><span class="annottext">Seen p
</span><a href="#local-6989586621680869028"><span class="hs-identifier hs-var">remSeen'</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680869030"><span class="annot"><span class="annottext">[LFieldOcc (GhcPass p)]
</span><a href="#local-6989586621680869030"><span class="hs-identifier hs-var">flds</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Seen p
-&gt; HsConDeclDetails (GhcPass p)
-&gt; (Seen p, [LFieldOcc (GhcPass p)])
</span><a href="#local-6989586621680869036"><span class="hs-identifier hs-var">get_flds</span></a></span><span> </span><span class="annot"><span class="annottext">Seen p
</span><a href="#local-6989586621680869049"><span class="hs-identifier hs-var">remSeen</span></a></span><span> </span><span class="annot"><span class="annottext">HsConDeclDetails (GhcPass p)
</span><a href="#local-6989586621680869032"><span class="hs-identifier hs-var">args</span></a></span><span>
</span><span id="line-1269"></span><span>                </span><span class="hs-special">(</span><span id="local-6989586621680869031"><span class="annot"><span class="annottext">[GenLocated SrcSpan (IdGhcP p)]
</span><a href="#local-6989586621680869031"><span class="hs-identifier hs-var">ns</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680869029"><span class="annot"><span class="annottext">[LFieldOcc (GhcPass p)]
</span><a href="#local-6989586621680869029"><span class="hs-identifier hs-var">fs</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Seen p
-&gt; [LConDecl (GhcPass p)]
-&gt; ([Located (IdP (GhcPass p))], [LFieldOcc (GhcPass p)])
</span><a href="#local-6989586621680869051"><span class="hs-identifier hs-var">go</span></a></span><span> </span><span class="annot"><span class="annottext">Seen p
</span><a href="#local-6989586621680869028"><span class="hs-identifier hs-var">remSeen'</span></a></span><span> </span><span class="annot"><span class="annottext">[LConDecl (GhcPass p)]
</span><a href="#local-6989586621680869047"><span class="hs-identifier hs-var">rs</span></a></span><span>
</span><span id="line-1270"></span><span>
</span><span id="line-1271"></span><span>    </span><span class="annot"><a href="#local-6989586621680869036"><span class="hs-identifier hs-type">get_flds</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Utils.html#Seen"><span class="hs-identifier hs-type">Seen</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870204"><span class="hs-identifier hs-type">p</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Decls.html#HsConDeclDetails"><span class="hs-identifier hs-type">HsConDeclDetails</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870204"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1272"></span><span>             </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Utils.html#Seen"><span class="hs-identifier hs-type">Seen</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870204"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Type.html#LFieldOcc"><span class="hs-identifier hs-type">LFieldOcc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870204"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span class="hs-special">)</span><span>
</span><span id="line-1273"></span><span>    </span><span id="local-6989586621680869036"><span class="annot"><span class="annottext">get_flds :: Seen p
-&gt; HsConDeclDetails (GhcPass p)
-&gt; (Seen p, [LFieldOcc (GhcPass p)])
</span><a href="#local-6989586621680869036"><span class="hs-identifier hs-var hs-var">get_flds</span></a></span></span><span> </span><span id="local-6989586621680869027"><span class="annot"><span class="annottext">Seen p
</span><a href="#local-6989586621680869027"><span class="hs-identifier hs-var">remSeen</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Type.html#RecCon"><span class="hs-identifier hs-type">RecCon</span></a></span><span> </span><span id="local-6989586621680869026"><span class="annot"><span class="annottext">Located [LConDeclField (GhcPass p)]
</span><a href="#local-6989586621680869026"><span class="hs-identifier hs-var">flds</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-1274"></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Seen p
</span><a href="#local-6989586621680869025"><span class="hs-identifier hs-var">remSeen'</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">[LFieldOcc (GhcPass p)]
</span><a href="#local-6989586621680869024"><span class="hs-identifier hs-var">fld_names</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1275"></span><span>       </span><span class="hs-keyword">where</span><span>
</span><span id="line-1276"></span><span>          </span><span id="local-6989586621680869024"><span class="annot"><span class="annottext">fld_names :: [LFieldOcc (GhcPass p)]
</span><a href="#local-6989586621680869024"><span class="hs-identifier hs-var hs-var">fld_names</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Seen p
</span><a href="#local-6989586621680869027"><span class="hs-identifier hs-var">remSeen</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(LConDeclField (GhcPass p) -&gt; [LFieldOcc (GhcPass p)])
-&gt; [LConDeclField (GhcPass p)] -&gt; [LFieldOcc (GhcPass p)]
forall (t :: * -&gt; *) a b. Foldable t =&gt; (a -&gt; [b]) -&gt; t a -&gt; [b]
</span><a href="../../base/src/Data.Foldable.html#concatMap"><span class="hs-identifier hs-var">concatMap</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ConDeclField (GhcPass p) -&gt; [LFieldOcc (GhcPass p)]
forall pass. ConDeclField pass -&gt; [LFieldOcc pass]
</span><a href="GHC.Hs.Type.html#cd_fld_names"><span class="hs-identifier hs-var hs-var">cd_fld_names</span></a></span><span> </span><span class="annot"><span class="annottext">(ConDeclField (GhcPass p) -&gt; [LFieldOcc (GhcPass p)])
-&gt; (LConDeclField (GhcPass p) -&gt; ConDeclField (GhcPass p))
-&gt; LConDeclField (GhcPass p)
-&gt; [LFieldOcc (GhcPass p)]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">LConDeclField (GhcPass p) -&gt; ConDeclField (GhcPass p)
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Located [LConDeclField (GhcPass p)] -&gt; [LConDeclField (GhcPass p)]
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span> </span><span class="annot"><span class="annottext">Located [LConDeclField (GhcPass p)]
</span><a href="#local-6989586621680869026"><span class="hs-identifier hs-var">flds</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-1277"></span><span>          </span><span id="local-6989586621680869025"><span class="annot"><span class="annottext">remSeen' :: Seen p
</span><a href="#local-6989586621680869025"><span class="hs-identifier hs-var hs-var">remSeen'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Seen p -&gt; Seen p -&gt; Seen p) -&gt; Seen p -&gt; [Seen p] -&gt; Seen p
forall (t :: * -&gt; *) a b.
Foldable t =&gt;
(a -&gt; b -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldr"><span class="hs-identifier hs-var">foldr</span></a></span><span> </span><span class="annot"><span class="annottext">Seen p -&gt; Seen p -&gt; Seen p
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">(.)</span></a></span><span> </span><span class="annot"><span class="annottext">Seen p
</span><a href="#local-6989586621680869027"><span class="hs-identifier hs-var">remSeen</span></a></span><span>
</span><span id="line-1278"></span><span>                               </span><span class="hs-special">[</span><span class="annot"><span class="annottext">(LFieldOcc (GhcPass p) -&gt; LFieldOcc (GhcPass p) -&gt; Bool)
-&gt; LFieldOcc (GhcPass p) -&gt; Seen p
forall a. (a -&gt; a -&gt; Bool) -&gt; a -&gt; [a] -&gt; [a]
</span><a href="../../base/src/Data.OldList.html#deleteBy"><span class="hs-identifier hs-var">deleteBy</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RdrName -&gt; RdrName -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">(==)</span></span><span> </span><span class="annot"><span class="annottext">(RdrName -&gt; RdrName -&gt; Bool)
-&gt; (LFieldOcc (GhcPass p) -&gt; RdrName)
-&gt; LFieldOcc (GhcPass p)
-&gt; LFieldOcc (GhcPass p)
-&gt; Bool
forall b c a. (b -&gt; b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; a -&gt; c
</span><a href="../../base/src/Data.Function.html#on"><span class="hs-operator hs-var">`on`</span></a></span><span> </span><span class="annot"><span class="annottext">Located RdrName -&gt; RdrName
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Located RdrName -&gt; RdrName)
-&gt; (LFieldOcc (GhcPass p) -&gt; Located RdrName)
-&gt; LFieldOcc (GhcPass p)
-&gt; RdrName
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">FieldOcc (GhcPass p) -&gt; Located RdrName
forall pass. FieldOcc pass -&gt; Located RdrName
</span><a href="GHC.Hs.Type.html#rdrNameFieldOcc"><span class="hs-identifier hs-var hs-var">rdrNameFieldOcc</span></a></span><span> </span><span class="annot"><span class="annottext">(FieldOcc (GhcPass p) -&gt; Located RdrName)
-&gt; (LFieldOcc (GhcPass p) -&gt; FieldOcc (GhcPass p))
-&gt; LFieldOcc (GhcPass p)
-&gt; Located RdrName
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">LFieldOcc (GhcPass p) -&gt; FieldOcc (GhcPass p)
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">LFieldOcc (GhcPass p)
</span><a href="#local-6989586621680869019"><span class="hs-identifier hs-var">v</span></a></span><span>
</span><span id="line-1279"></span><span>                               </span><span class="hs-glyph">|</span><span> </span><span id="local-6989586621680869019"><span class="annot"><span class="annottext">LFieldOcc (GhcPass p)
</span><a href="#local-6989586621680869019"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[LFieldOcc (GhcPass p)]
</span><a href="#local-6989586621680869024"><span class="hs-identifier hs-var">fld_names</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-1280"></span><span>    </span><span class="annot"><a href="#local-6989586621680869036"><span class="hs-identifier hs-var">get_flds</span></a></span><span> </span><span id="local-6989586621680869018"><span class="annot"><span class="annottext">Seen p
</span><a href="#local-6989586621680869018"><span class="hs-identifier hs-var">remSeen</span></a></span></span><span> </span><span class="annot"><span class="annottext">HsConDeclDetails (GhcPass p)
</span><span class="hs-identifier">_</span></span><span>
</span><span id="line-1281"></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Seen p
</span><a href="#local-6989586621680869018"><span class="hs-identifier hs-var">remSeen</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">)</span><span>
</span><span id="line-1282"></span><span>
</span><span id="line-1283"></span><span class="hs-comment">{-

Note [SrcSpan for binders]
~~~~~~~~~~~~~~~~~~~~~~~~~~
When extracting the (Located RdrNme) for a binder, at least for the
main name (the TyCon of a type declaration etc), we want to give it
the @SrcSpan@ of the whole /declaration/, not just the name itself
(which is how it appears in the syntax tree).  This SrcSpan (for the
entire declaration) is used as the SrcSpan for the Name that is
finally produced, and hence for error messages.  (See #8607.)

Note [Binders in family instances]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In a type or data family instance declaration, the type
constructor is an *occurrence* not a binding site
    type instance T Int = Int -&gt; Int   -- No binders
    data instance S Bool = S1 | S2     -- Binders are S1,S2


************************************************************************
*                                                                      *
        Collecting binders the user did not write
*                                                                      *
************************************************************************

The job of this family of functions is to run through binding sites and find the set of all Names
that were defined &quot;implicitly&quot;, without being explicitly written by the user.

The main purpose is to find names introduced by record wildcards so that we can avoid
warning the user when they don't use those names (#4404)

Since the addition of -Wunused-record-wildcards, this function returns a pair
of [(SrcSpan, [Name])]. Each element of the list is one set of implicit
binders, the first component of the tuple is the document describes the possible
fix to the problem (by removing the ..).

This means there is some unfortunate coupling between this function and where it
is used but it's only used for one specific purpose in one place so it seemed
easier.
-}</span><span>
</span><span id="line-1323"></span><span>
</span><span id="line-1324"></span><span id="local-6989586621680870185"><span id="local-6989586621680870186"><span class="annot"><a href="GHC.Hs.Utils.html#lStmtsImplicits"><span class="hs-identifier hs-type">lStmtsImplicits</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#LStmtLR"><span class="hs-identifier hs-type">LStmtLR</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870186"><span class="hs-identifier hs-type">idR</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680870185"><span class="hs-identifier hs-type">body</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870186"><span class="hs-identifier hs-type">idR</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-1325"></span><span>                </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.Name.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span><span class="hs-special">]</span></span></span><span>
</span><span id="line-1326"></span><span id="lStmtsImplicits"><span class="annot"><span class="annottext">lStmtsImplicits :: forall (idR :: Pass) (body :: * -&gt; *).
[LStmtLR GhcRn (GhcPass idR) (Located (body (GhcPass idR)))]
-&gt; [(SrcSpan, [Name])]
</span><a href="GHC.Hs.Utils.html#lStmtsImplicits"><span class="hs-identifier hs-var hs-var">lStmtsImplicits</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[LStmtLR GhcRn (GhcPass idR) (Located (body (GhcPass idR)))]
-&gt; [(SrcSpan, [Name])]
forall (idR :: Pass) (body :: * -&gt; *).
[LStmtLR GhcRn (GhcPass idR) (Located (body (GhcPass idR)))]
-&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680869017"><span class="hs-identifier hs-var">hs_lstmts</span></a></span><span>
</span><span id="line-1327"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-1328"></span><span>    </span><span id="local-6989586621680869015"><span id="local-6989586621680869016"><span class="annot"><a href="#local-6989586621680869017"><span class="hs-identifier hs-type">hs_lstmts</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Hs.Expr.html#LStmtLR"><span class="hs-identifier hs-type">LStmtLR</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680869016"><span class="hs-identifier hs-type">idR</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680869015"><span class="hs-identifier hs-type">body</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680869016"><span class="hs-identifier hs-type">idR</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-1329"></span><span>              </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.Name.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span><span class="hs-special">]</span></span></span><span>
</span><span id="line-1330"></span><span>    </span><span id="local-6989586621680869017"><span class="annot"><span class="annottext">hs_lstmts :: forall (idR :: Pass) (body :: * -&gt; *).
[LStmtLR GhcRn (GhcPass idR) (Located (body (GhcPass idR)))]
-&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680869017"><span class="hs-identifier hs-var hs-var">hs_lstmts</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(GenLocated
   SrcSpan (StmtLR GhcRn (GhcPass idR) (Located (body (GhcPass idR))))
 -&gt; [(SrcSpan, [Name])])
-&gt; [GenLocated
      SrcSpan
      (StmtLR GhcRn (GhcPass idR) (Located (body (GhcPass idR))))]
-&gt; [(SrcSpan, [Name])]
forall (t :: * -&gt; *) a b. Foldable t =&gt; (a -&gt; [b]) -&gt; t a -&gt; [b]
</span><a href="../../base/src/Data.Foldable.html#concatMap"><span class="hs-identifier hs-var">concatMap</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">StmtLR GhcRn (GhcPass idR) (Located (body (GhcPass idR)))
-&gt; [(SrcSpan, [Name])]
forall (idR :: Pass) (body :: * -&gt; *).
StmtLR GhcRn (GhcPass idR) (Located (body (GhcPass idR)))
-&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680869013"><span class="hs-identifier hs-var">hs_stmt</span></a></span><span> </span><span class="annot"><span class="annottext">(StmtLR GhcRn (GhcPass idR) (Located (body (GhcPass idR)))
 -&gt; [(SrcSpan, [Name])])
-&gt; (GenLocated
      SrcSpan (StmtLR GhcRn (GhcPass idR) (Located (body (GhcPass idR))))
    -&gt; StmtLR GhcRn (GhcPass idR) (Located (body (GhcPass idR))))
-&gt; GenLocated
     SrcSpan (StmtLR GhcRn (GhcPass idR) (Located (body (GhcPass idR))))
-&gt; [(SrcSpan, [Name])]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">GenLocated
  SrcSpan (StmtLR GhcRn (GhcPass idR) (Located (body (GhcPass idR))))
-&gt; StmtLR GhcRn (GhcPass idR) (Located (body (GhcPass idR)))
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1331"></span><span>
</span><span id="line-1332"></span><span>    </span><span id="local-6989586621680870179"><span id="local-6989586621680870180"><span class="annot"><a href="#local-6989586621680869013"><span class="hs-identifier hs-type">hs_stmt</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#StmtLR"><span class="hs-identifier hs-type">StmtLR</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870180"><span class="hs-identifier hs-type">idR</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680870179"><span class="hs-identifier hs-type">body</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870180"><span class="hs-identifier hs-type">idR</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-1333"></span><span>            </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.Name.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span><span class="hs-special">]</span></span></span><span>
</span><span id="line-1334"></span><span>    </span><span id="local-6989586621680869013"><span class="annot"><span class="annottext">hs_stmt :: forall (idR :: Pass) (body :: * -&gt; *).
StmtLR GhcRn (GhcPass idR) (Located (body (GhcPass idR)))
-&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680869013"><span class="hs-identifier hs-var hs-var">hs_stmt</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#BindStmt"><span class="hs-identifier hs-type">BindStmt</span></a></span><span> </span><span class="annot"><span class="annottext">XBindStmt GhcRn (GhcPass idR) (Located (body (GhcPass idR)))
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869011"><span class="annot"><span class="annottext">LPat GhcRn
</span><a href="#local-6989586621680869011"><span class="hs-identifier hs-var">pat</span></a></span></span><span> </span><span class="annot"><span class="annottext">Located (body (GhcPass idR))
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LPat GhcRn -&gt; [(SrcSpan, [Name])]
</span><a href="GHC.Hs.Utils.html#lPatImplicits"><span class="hs-identifier hs-var">lPatImplicits</span></a></span><span> </span><span class="annot"><span class="annottext">LPat GhcRn
</span><a href="#local-6989586621680869011"><span class="hs-identifier hs-var">pat</span></a></span><span>
</span><span id="line-1335"></span><span>    </span><span class="annot"><a href="#local-6989586621680869013"><span class="hs-identifier hs-var">hs_stmt</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#ApplicativeStmt"><span class="hs-identifier hs-type">ApplicativeStmt</span></a></span><span> </span><span class="annot"><span class="annottext">XApplicativeStmt GhcRn (GhcPass idR) (Located (body (GhcPass idR)))
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869010"><span class="annot"><span class="annottext">[(SyntaxExpr (GhcPass idR), ApplicativeArg GhcRn)]
</span><a href="#local-6989586621680869010"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span class="annot"><span class="annottext">Maybe (SyntaxExpr (GhcPass idR))
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">((SyntaxExprGhc idR, ApplicativeArg GhcRn) -&gt; [(SrcSpan, [Name])])
-&gt; [(SyntaxExprGhc idR, ApplicativeArg GhcRn)]
-&gt; [(SrcSpan, [Name])]
forall (t :: * -&gt; *) a b. Foldable t =&gt; (a -&gt; [b]) -&gt; t a -&gt; [b]
</span><a href="../../base/src/Data.Foldable.html#concatMap"><span class="hs-identifier hs-var">concatMap</span></a></span><span> </span><span class="annot"><span class="annottext">(SyntaxExprGhc idR, ApplicativeArg GhcRn) -&gt; [(SrcSpan, [Name])]
forall {a}. (a, ApplicativeArg GhcRn) -&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680869009"><span class="hs-identifier hs-var">do_arg</span></a></span><span> </span><span class="annot"><span class="annottext">[(SyntaxExpr (GhcPass idR), ApplicativeArg GhcRn)]
[(SyntaxExprGhc idR, ApplicativeArg GhcRn)]
</span><a href="#local-6989586621680869010"><span class="hs-identifier hs-var">args</span></a></span><span>
</span><span id="line-1336"></span><span>      </span><span class="hs-keyword">where</span><span> </span><span id="local-6989586621680869009"><span class="annot"><span class="annottext">do_arg :: (a, ApplicativeArg GhcRn) -&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680869009"><span class="hs-identifier hs-var hs-var">do_arg</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#ApplicativeArgOne"><span class="hs-identifier hs-type">ApplicativeArgOne</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">app_arg_pattern :: forall idL. ApplicativeArg idL -&gt; LPat idL
</span><a href="GHC.Hs.Expr.html#app_arg_pattern"><span class="hs-identifier hs-var">app_arg_pattern</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869008"><span class="annot"><span class="annottext">LPat GhcRn
</span><a href="#local-6989586621680869008"><span class="hs-identifier hs-var">pat</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LPat GhcRn -&gt; [(SrcSpan, [Name])]
</span><a href="GHC.Hs.Utils.html#lPatImplicits"><span class="hs-identifier hs-var">lPatImplicits</span></a></span><span> </span><span class="annot"><span class="annottext">LPat GhcRn
</span><a href="#local-6989586621680869008"><span class="hs-identifier hs-var">pat</span></a></span><span>
</span><span id="line-1337"></span><span>            </span><span class="annot"><a href="#local-6989586621680869009"><span class="hs-identifier hs-var">do_arg</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#ApplicativeArgMany"><span class="hs-identifier hs-type">ApplicativeArgMany</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">app_stmts :: forall idL. ApplicativeArg idL -&gt; [ExprLStmt idL]
</span><a href="GHC.Hs.Expr.html#app_stmts"><span class="hs-identifier hs-var">app_stmts</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869006"><span class="annot"><span class="annottext">[ExprLStmt GhcRn]
</span><a href="#local-6989586621680869006"><span class="hs-identifier hs-var">stmts</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[ExprLStmt GhcRn] -&gt; [(SrcSpan, [Name])]
forall (idR :: Pass) (body :: * -&gt; *).
[LStmtLR GhcRn (GhcPass idR) (Located (body (GhcPass idR)))]
-&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680869017"><span class="hs-identifier hs-var">hs_lstmts</span></a></span><span> </span><span class="annot"><span class="annottext">[ExprLStmt GhcRn]
</span><a href="#local-6989586621680869006"><span class="hs-identifier hs-var">stmts</span></a></span><span>
</span><span id="line-1338"></span><span>    </span><span class="annot"><a href="#local-6989586621680869013"><span class="hs-identifier hs-var">hs_stmt</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LetStmt"><span class="hs-identifier hs-type">LetStmt</span></a></span><span> </span><span class="annot"><span class="annottext">XLetStmt GhcRn (GhcPass idR) (Located (body (GhcPass idR)))
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869005"><span class="annot"><span class="annottext">LHsLocalBindsLR GhcRn (GhcPass idR)
</span><a href="#local-6989586621680869005"><span class="hs-identifier hs-var">binds</span></a></span></span><span class="hs-special">)</span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsLocalBindsLR GhcRn (GhcPass idR) -&gt; [(SrcSpan, [Name])]
forall {idR :: Pass}.
HsLocalBindsLR GhcRn (GhcPass idR) -&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680869004"><span class="hs-identifier hs-var">hs_local_binds</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsLocalBindsLR GhcRn (GhcPass idR)
-&gt; HsLocalBindsLR GhcRn (GhcPass idR)
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span> </span><span class="annot"><span class="annottext">LHsLocalBindsLR GhcRn (GhcPass idR)
</span><a href="#local-6989586621680869005"><span class="hs-identifier hs-var">binds</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1339"></span><span>    </span><span class="annot"><a href="#local-6989586621680869013"><span class="hs-identifier hs-var">hs_stmt</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#BodyStmt"><span class="hs-identifier hs-type">BodyStmt</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span>         </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-1340"></span><span>    </span><span class="annot"><a href="#local-6989586621680869013"><span class="hs-identifier hs-var">hs_stmt</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#LastStmt"><span class="hs-identifier hs-type">LastStmt</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span>         </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-1341"></span><span>    </span><span class="annot"><a href="#local-6989586621680869013"><span class="hs-identifier hs-var">hs_stmt</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#ParStmt"><span class="hs-identifier hs-type">ParStmt</span></a></span><span> </span><span class="annot"><span class="annottext">XParStmt GhcRn (GhcPass idR) (Located (body (GhcPass idR)))
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869003"><span class="annot"><span class="annottext">[ParStmtBlock GhcRn (GhcPass idR)]
</span><a href="#local-6989586621680869003"><span class="hs-identifier hs-var">xs</span></a></span></span><span> </span><span class="annot"><span class="annottext">HsExpr (GhcPass idR)
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">SyntaxExpr (GhcPass idR)
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[ExprLStmt GhcRn] -&gt; [(SrcSpan, [Name])]
forall (idR :: Pass) (body :: * -&gt; *).
[LStmtLR GhcRn (GhcPass idR) (Located (body (GhcPass idR)))]
-&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680869017"><span class="hs-identifier hs-var">hs_lstmts</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">ExprLStmt GhcRn
</span><a href="#local-6989586621680869002"><span class="hs-identifier hs-var">s</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><a href="GHC.Hs.Expr.html#ParStmtBlock"><span class="hs-identifier hs-type">ParStmtBlock</span></a></span><span> </span><span class="annot"><span class="annottext">XParStmtBlock GhcRn (GhcPass idR)
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680869001"><span class="annot"><span class="annottext">[ExprLStmt GhcRn]
</span><a href="#local-6989586621680869001"><span class="hs-identifier hs-var">ss</span></a></span></span><span> </span><span class="annot"><span class="annottext">[IdP (GhcPass idR)]
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">SyntaxExpr (GhcPass idR)
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[ParStmtBlock GhcRn (GhcPass idR)]
</span><a href="#local-6989586621680869003"><span class="hs-identifier hs-var">xs</span></a></span><span>
</span><span id="line-1342"></span><span>                                                </span><span class="hs-special">,</span><span> </span><span id="local-6989586621680869002"><span class="annot"><span class="annottext">ExprLStmt GhcRn
</span><a href="#local-6989586621680869002"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[ExprLStmt GhcRn]
</span><a href="#local-6989586621680869001"><span class="hs-identifier hs-var">ss</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-1343"></span><span>    </span><span class="annot"><a href="#local-6989586621680869013"><span class="hs-identifier hs-var">hs_stmt</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#TransStmt"><span class="hs-identifier hs-type">TransStmt</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">trS_stmts :: forall idL idR body. StmtLR idL idR body -&gt; [ExprLStmt idL]
</span><a href="GHC.Hs.Expr.html#trS_stmts"><span class="hs-identifier hs-var">trS_stmts</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680869000"><span class="annot"><span class="annottext">[ExprLStmt GhcRn]
</span><a href="#local-6989586621680869000"><span class="hs-identifier hs-var">stmts</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[ExprLStmt GhcRn] -&gt; [(SrcSpan, [Name])]
forall (idR :: Pass) (body :: * -&gt; *).
[LStmtLR GhcRn (GhcPass idR) (Located (body (GhcPass idR)))]
-&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680869017"><span class="hs-identifier hs-var">hs_lstmts</span></a></span><span> </span><span class="annot"><span class="annottext">[ExprLStmt GhcRn]
</span><a href="#local-6989586621680869000"><span class="hs-identifier hs-var">stmts</span></a></span><span>
</span><span id="line-1344"></span><span>    </span><span class="annot"><a href="#local-6989586621680869013"><span class="hs-identifier hs-var">hs_stmt</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Expr.html#RecStmt"><span class="hs-identifier hs-type">RecStmt</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">recS_stmts :: forall idL idR body. StmtLR idL idR body -&gt; [LStmtLR idL idR body]
</span><a href="GHC.Hs.Expr.html#recS_stmts"><span class="hs-identifier hs-var">recS_stmts</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680868999"><span class="annot"><span class="annottext">[LStmtLR GhcRn (GhcPass idR) (Located (body (GhcPass idR)))]
</span><a href="#local-6989586621680868999"><span class="hs-identifier hs-var">ss</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[LStmtLR GhcRn (GhcPass idR) (Located (body (GhcPass idR)))]
-&gt; [(SrcSpan, [Name])]
forall (idR :: Pass) (body :: * -&gt; *).
[LStmtLR GhcRn (GhcPass idR) (Located (body (GhcPass idR)))]
-&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680869017"><span class="hs-identifier hs-var">hs_lstmts</span></a></span><span> </span><span class="annot"><span class="annottext">[LStmtLR GhcRn (GhcPass idR) (Located (body (GhcPass idR)))]
</span><a href="#local-6989586621680868999"><span class="hs-identifier hs-var">ss</span></a></span><span>
</span><span id="line-1345"></span><span>
</span><span id="line-1346"></span><span>    </span><span id="local-6989586621680869004"><span class="annot"><span class="annottext">hs_local_binds :: HsLocalBindsLR GhcRn (GhcPass idR) -&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680869004"><span class="hs-identifier hs-var hs-var">hs_local_binds</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#HsValBinds"><span class="hs-identifier hs-type">HsValBinds</span></a></span><span> </span><span class="annot"><span class="annottext">XHsValBinds GhcRn (GhcPass idR)
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680868998"><span class="annot"><span class="annottext">HsValBindsLR GhcRn (GhcPass idR)
</span><a href="#local-6989586621680868998"><span class="hs-identifier hs-var">val_binds</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HsValBindsLR GhcRn (GhcPass idR) -&gt; [(SrcSpan, [Name])]
forall (idR :: Pass).
HsValBindsLR GhcRn (GhcPass idR) -&gt; [(SrcSpan, [Name])]
</span><a href="GHC.Hs.Utils.html#hsValBindsImplicits"><span class="hs-identifier hs-var">hsValBindsImplicits</span></a></span><span> </span><span class="annot"><span class="annottext">HsValBindsLR GhcRn (GhcPass idR)
</span><a href="#local-6989586621680868998"><span class="hs-identifier hs-var">val_binds</span></a></span><span>
</span><span id="line-1347"></span><span>    </span><span class="annot"><a href="#local-6989586621680869004"><span class="hs-identifier hs-var">hs_local_binds</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#HsIPBinds"><span class="hs-identifier hs-type">HsIPBinds</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span>           </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-1348"></span><span>    </span><span class="annot"><a href="#local-6989586621680869004"><span class="hs-identifier hs-var">hs_local_binds</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#EmptyLocalBinds"><span class="hs-identifier hs-type">EmptyLocalBinds</span></a></span><span> </span><span class="annot"><span class="annottext">XEmptyLocalBinds GhcRn (GhcPass idR)
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-1349"></span><span>
</span><span id="line-1350"></span><span id="local-6989586621680870173"><span class="annot"><a href="GHC.Hs.Utils.html#hsValBindsImplicits"><span class="hs-identifier hs-type">hsValBindsImplicits</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#HsValBindsLR"><span class="hs-identifier hs-type">HsValBindsLR</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870173"><span class="hs-identifier hs-type">idR</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.Name.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span><span class="hs-special">]</span></span><span>
</span><span id="line-1351"></span><span id="hsValBindsImplicits"><span class="annot"><span class="annottext">hsValBindsImplicits :: forall (idR :: Pass).
HsValBindsLR GhcRn (GhcPass idR) -&gt; [(SrcSpan, [Name])]
</span><a href="GHC.Hs.Utils.html#hsValBindsImplicits"><span class="hs-identifier hs-var hs-var">hsValBindsImplicits</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#XValBindsLR"><span class="hs-identifier hs-type">XValBindsLR</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#NValBinds"><span class="hs-identifier hs-type">NValBinds</span></a></span><span> </span><span id="local-6989586621680868996"><span class="annot"><span class="annottext">[(RecFlag, LHsBinds GhcRn)]
</span><a href="#local-6989586621680868996"><span class="hs-identifier hs-var">binds</span></a></span></span><span> </span><span class="annot"><span class="annottext">[LSig GhcRn]
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-1352"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">((RecFlag, LHsBinds GhcRn) -&gt; [(SrcSpan, [Name])])
-&gt; [(RecFlag, LHsBinds GhcRn)] -&gt; [(SrcSpan, [Name])]
forall (t :: * -&gt; *) a b. Foldable t =&gt; (a -&gt; [b]) -&gt; t a -&gt; [b]
</span><a href="../../base/src/Data.Foldable.html#concatMap"><span class="hs-identifier hs-var">concatMap</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LHsBinds GhcRn -&gt; [(SrcSpan, [Name])]
forall idR. LHsBindsLR GhcRn idR -&gt; [(SrcSpan, [Name])]
</span><a href="GHC.Hs.Utils.html#lhsBindsImplicits"><span class="hs-identifier hs-var">lhsBindsImplicits</span></a></span><span> </span><span class="annot"><span class="annottext">(LHsBinds GhcRn -&gt; [(SrcSpan, [Name])])
-&gt; ((RecFlag, LHsBinds GhcRn) -&gt; LHsBinds GhcRn)
-&gt; (RecFlag, LHsBinds GhcRn)
-&gt; [(SrcSpan, [Name])]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(RecFlag, LHsBinds GhcRn) -&gt; LHsBinds GhcRn
forall a b. (a, b) -&gt; b
</span><a href="../../base/src/Data.Tuple.html#snd"><span class="hs-identifier hs-var">snd</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[(RecFlag, LHsBinds GhcRn)]
</span><a href="#local-6989586621680868996"><span class="hs-identifier hs-var">binds</span></a></span><span>
</span><span id="line-1353"></span><span class="annot"><a href="GHC.Hs.Utils.html#hsValBindsImplicits"><span class="hs-identifier hs-var">hsValBindsImplicits</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#ValBinds"><span class="hs-identifier hs-type">ValBinds</span></a></span><span> </span><span class="annot"><span class="annottext">XValBinds GhcRn (GhcPass idR)
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680868994"><span class="annot"><span class="annottext">LHsBindsLR GhcRn (GhcPass idR)
</span><a href="#local-6989586621680868994"><span class="hs-identifier hs-var">binds</span></a></span></span><span> </span><span class="annot"><span class="annottext">[LSig (GhcPass idR)]
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>
</span><span id="line-1354"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LHsBindsLR GhcRn (GhcPass idR) -&gt; [(SrcSpan, [Name])]
forall idR. LHsBindsLR GhcRn idR -&gt; [(SrcSpan, [Name])]
</span><a href="GHC.Hs.Utils.html#lhsBindsImplicits"><span class="hs-identifier hs-var">lhsBindsImplicits</span></a></span><span> </span><span class="annot"><span class="annottext">LHsBindsLR GhcRn (GhcPass idR)
</span><a href="#local-6989586621680868994"><span class="hs-identifier hs-var">binds</span></a></span><span>
</span><span id="line-1355"></span><span>
</span><span id="line-1356"></span><span id="local-6989586621680870171"><span class="annot"><a href="GHC.Hs.Utils.html#lhsBindsImplicits"><span class="hs-identifier hs-type">lhsBindsImplicits</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Binds.html#LHsBindsLR"><span class="hs-identifier hs-type">LHsBindsLR</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680870171"><span class="hs-identifier hs-type">idR</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.Name.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span><span class="hs-special">]</span></span><span>
</span><span id="line-1357"></span><span id="lhsBindsImplicits"><span class="annot"><span class="annottext">lhsBindsImplicits :: forall idR. LHsBindsLR GhcRn idR -&gt; [(SrcSpan, [Name])]
</span><a href="GHC.Hs.Utils.html#lhsBindsImplicits"><span class="hs-identifier hs-var hs-var">lhsBindsImplicits</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">([(SrcSpan, [Name])] -&gt; [(SrcSpan, [Name])] -&gt; [(SrcSpan, [Name])])
-&gt; (GenLocated SrcSpan (HsBindLR GhcRn idR) -&gt; [(SrcSpan, [Name])])
-&gt; [(SrcSpan, [Name])]
-&gt; Bag (GenLocated SrcSpan (HsBindLR GhcRn idR))
-&gt; [(SrcSpan, [Name])]
forall r a. (r -&gt; r -&gt; r) -&gt; (a -&gt; r) -&gt; r -&gt; Bag a -&gt; r
</span><a href="GHC.Data.Bag.html#foldBag"><span class="hs-identifier hs-var">foldBag</span></a></span><span> </span><span class="annot"><span class="annottext">[(SrcSpan, [Name])] -&gt; [(SrcSpan, [Name])] -&gt; [(SrcSpan, [Name])]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">(++)</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsBindLR GhcRn idR -&gt; [(SrcSpan, [Name])]
forall {idR}. HsBindLR GhcRn idR -&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680868992"><span class="hs-identifier hs-var">lhs_bind</span></a></span><span> </span><span class="annot"><span class="annottext">(HsBindLR GhcRn idR -&gt; [(SrcSpan, [Name])])
-&gt; (GenLocated SrcSpan (HsBindLR GhcRn idR) -&gt; HsBindLR GhcRn idR)
-&gt; GenLocated SrcSpan (HsBindLR GhcRn idR)
-&gt; [(SrcSpan, [Name])]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">GenLocated SrcSpan (HsBindLR GhcRn idR) -&gt; HsBindLR GhcRn idR
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-1358"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-1359"></span><span>    </span><span id="local-6989586621680868992"><span class="annot"><span class="annottext">lhs_bind :: HsBindLR GhcRn idR -&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680868992"><span class="hs-identifier hs-var hs-var">lhs_bind</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Binds.html#PatBind"><span class="hs-identifier hs-type">PatBind</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">pat_lhs :: forall idL idR. HsBindLR idL idR -&gt; LPat idL
</span><a href="GHC.Hs.Binds.html#pat_lhs"><span class="hs-identifier hs-var">pat_lhs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680868991"><span class="annot"><span class="annottext">LPat GhcRn
</span><a href="#local-6989586621680868991"><span class="hs-identifier hs-var">lpat</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LPat GhcRn -&gt; [(SrcSpan, [Name])]
</span><a href="GHC.Hs.Utils.html#lPatImplicits"><span class="hs-identifier hs-var">lPatImplicits</span></a></span><span> </span><span class="annot"><span class="annottext">LPat GhcRn
</span><a href="#local-6989586621680868991"><span class="hs-identifier hs-var">lpat</span></a></span><span>
</span><span id="line-1360"></span><span>    </span><span class="annot"><a href="#local-6989586621680868992"><span class="hs-identifier hs-var">lhs_bind</span></a></span><span> </span><span class="annot"><span class="annottext">HsBindLR GhcRn idR
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-1361"></span><span>
</span><span id="line-1362"></span><span class="annot"><a href="GHC.Hs.Utils.html#lPatImplicits"><span class="hs-identifier hs-type">lPatImplicits</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#LPat"><span class="hs-identifier hs-type">LPat</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.Name.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-1363"></span><span id="lPatImplicits"><span class="annot"><span class="annottext">lPatImplicits :: LPat GhcRn -&gt; [(SrcSpan, [Name])]
</span><a href="GHC.Hs.Utils.html#lPatImplicits"><span class="hs-identifier hs-var hs-var">lPatImplicits</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Located (Pat GhcRn) -&gt; [(SrcSpan, [Name])]
LPat GhcRn -&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680868990"><span class="hs-identifier hs-var">hs_lpat</span></a></span><span>
</span><span id="line-1364"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-1365"></span><span>    </span><span id="local-6989586621680868990"><span class="annot"><span class="annottext">hs_lpat :: Located (Pat GhcRn) -&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680868990"><span class="hs-identifier hs-var hs-var">hs_lpat</span></a></span></span><span> </span><span id="local-6989586621680868988"><span class="annot"><span class="annottext">Located (Pat GhcRn)
</span><a href="#local-6989586621680868988"><span class="hs-identifier hs-var">lpat</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Pat GhcRn -&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680868987"><span class="hs-identifier hs-var">hs_pat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Located (Pat GhcRn) -&gt; Pat GhcRn
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span> </span><span class="annot"><span class="annottext">Located (Pat GhcRn)
</span><a href="#local-6989586621680868988"><span class="hs-identifier hs-var">lpat</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1366"></span><span>
</span><span id="line-1367"></span><span>    </span><span id="local-6989586621680868986"><span class="annot"><span class="annottext">hs_lpats :: [Located (Pat GhcRn)] -&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680868986"><span class="hs-identifier hs-var hs-var">hs_lpats</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Located (Pat GhcRn) -&gt; [(SrcSpan, [Name])] -&gt; [(SrcSpan, [Name])])
-&gt; [(SrcSpan, [Name])]
-&gt; [Located (Pat GhcRn)]
-&gt; [(SrcSpan, [Name])]
forall (t :: * -&gt; *) a b.
Foldable t =&gt;
(a -&gt; b -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldr"><span class="hs-identifier hs-var">foldr</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621680868985"><span class="annot"><span class="annottext">Located (Pat GhcRn)
</span><a href="#local-6989586621680868985"><span class="hs-identifier hs-var">pat</span></a></span></span><span> </span><span id="local-6989586621680868984"><span class="annot"><span class="annottext">[(SrcSpan, [Name])]
</span><a href="#local-6989586621680868984"><span class="hs-identifier hs-var">rest</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Located (Pat GhcRn) -&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680868990"><span class="hs-identifier hs-var">hs_lpat</span></a></span><span> </span><span class="annot"><span class="annottext">Located (Pat GhcRn)
</span><a href="#local-6989586621680868985"><span class="hs-identifier hs-var">pat</span></a></span><span> </span><span class="annot"><span class="annottext">[(SrcSpan, [Name])] -&gt; [(SrcSpan, [Name])] -&gt; [(SrcSpan, [Name])]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">[(SrcSpan, [Name])]
</span><a href="#local-6989586621680868984"><span class="hs-identifier hs-var">rest</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-1368"></span><span>
</span><span id="line-1369"></span><span>    </span><span id="local-6989586621680868987"><span class="annot"><span class="annottext">hs_pat :: Pat GhcRn -&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680868987"><span class="hs-identifier hs-var hs-var">hs_pat</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#LazyPat"><span class="hs-identifier hs-type">LazyPat</span></a></span><span> </span><span class="annot"><span class="annottext">XLazyPat GhcRn
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680868983"><span class="annot"><span class="annottext">LPat GhcRn
</span><a href="#local-6989586621680868983"><span class="hs-identifier hs-var">pat</span></a></span></span><span class="hs-special">)</span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Located (Pat GhcRn) -&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680868990"><span class="hs-identifier hs-var">hs_lpat</span></a></span><span> </span><span class="annot"><span class="annottext">Located (Pat GhcRn)
LPat GhcRn
</span><a href="#local-6989586621680868983"><span class="hs-identifier hs-var">pat</span></a></span><span>
</span><span id="line-1370"></span><span>    </span><span class="annot"><a href="#local-6989586621680868987"><span class="hs-identifier hs-var">hs_pat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#BangPat"><span class="hs-identifier hs-type">BangPat</span></a></span><span> </span><span class="annot"><span class="annottext">XBangPat GhcRn
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680868982"><span class="annot"><span class="annottext">LPat GhcRn
</span><a href="#local-6989586621680868982"><span class="hs-identifier hs-var">pat</span></a></span></span><span class="hs-special">)</span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Located (Pat GhcRn) -&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680868990"><span class="hs-identifier hs-var">hs_lpat</span></a></span><span> </span><span class="annot"><span class="annottext">Located (Pat GhcRn)
LPat GhcRn
</span><a href="#local-6989586621680868982"><span class="hs-identifier hs-var">pat</span></a></span><span>
</span><span id="line-1371"></span><span>    </span><span class="annot"><a href="#local-6989586621680868987"><span class="hs-identifier hs-var">hs_pat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#AsPat"><span class="hs-identifier hs-type">AsPat</span></a></span><span> </span><span class="annot"><span class="annottext">XAsPat GhcRn
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Located (IdP GhcRn)
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680868981"><span class="annot"><span class="annottext">LPat GhcRn
</span><a href="#local-6989586621680868981"><span class="hs-identifier hs-var">pat</span></a></span></span><span class="hs-special">)</span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Located (Pat GhcRn) -&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680868990"><span class="hs-identifier hs-var">hs_lpat</span></a></span><span> </span><span class="annot"><span class="annottext">Located (Pat GhcRn)
LPat GhcRn
</span><a href="#local-6989586621680868981"><span class="hs-identifier hs-var">pat</span></a></span><span>
</span><span id="line-1372"></span><span>    </span><span class="annot"><a href="#local-6989586621680868987"><span class="hs-identifier hs-var">hs_pat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#ViewPat"><span class="hs-identifier hs-type">ViewPat</span></a></span><span> </span><span class="annot"><span class="annottext">XViewPat GhcRn
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Located (HsExpr GhcRn)
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680868980"><span class="annot"><span class="annottext">LPat GhcRn
</span><a href="#local-6989586621680868980"><span class="hs-identifier hs-var">pat</span></a></span></span><span class="hs-special">)</span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Located (Pat GhcRn) -&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680868990"><span class="hs-identifier hs-var">hs_lpat</span></a></span><span> </span><span class="annot"><span class="annottext">Located (Pat GhcRn)
LPat GhcRn
</span><a href="#local-6989586621680868980"><span class="hs-identifier hs-var">pat</span></a></span><span>
</span><span id="line-1373"></span><span>    </span><span class="annot"><a href="#local-6989586621680868987"><span class="hs-identifier hs-var">hs_pat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#ParPat"><span class="hs-identifier hs-type">ParPat</span></a></span><span> </span><span class="annot"><span class="annottext">XParPat GhcRn
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680868979"><span class="annot"><span class="annottext">LPat GhcRn
</span><a href="#local-6989586621680868979"><span class="hs-identifier hs-var">pat</span></a></span></span><span class="hs-special">)</span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Located (Pat GhcRn) -&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680868990"><span class="hs-identifier hs-var">hs_lpat</span></a></span><span> </span><span class="annot"><span class="annottext">Located (Pat GhcRn)
LPat GhcRn
</span><a href="#local-6989586621680868979"><span class="hs-identifier hs-var">pat</span></a></span><span>
</span><span id="line-1374"></span><span>    </span><span class="annot"><a href="#local-6989586621680868987"><span class="hs-identifier hs-var">hs_pat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#ListPat"><span class="hs-identifier hs-type">ListPat</span></a></span><span> </span><span class="annot"><span class="annottext">XListPat GhcRn
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680868978"><span class="annot"><span class="annottext">[LPat GhcRn]
</span><a href="#local-6989586621680868978"><span class="hs-identifier hs-var">pats</span></a></span></span><span class="hs-special">)</span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Located (Pat GhcRn)] -&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680868986"><span class="hs-identifier hs-var">hs_lpats</span></a></span><span> </span><span class="annot"><span class="annottext">[Located (Pat GhcRn)]
[LPat GhcRn]
</span><a href="#local-6989586621680868978"><span class="hs-identifier hs-var">pats</span></a></span><span>
</span><span id="line-1375"></span><span>    </span><span class="annot"><a href="#local-6989586621680868987"><span class="hs-identifier hs-var">hs_pat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#TuplePat"><span class="hs-identifier hs-type">TuplePat</span></a></span><span> </span><span class="annot"><span class="annottext">XTuplePat GhcRn
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680868977"><span class="annot"><span class="annottext">[LPat GhcRn]
</span><a href="#local-6989586621680868977"><span class="hs-identifier hs-var">pats</span></a></span></span><span> </span><span class="annot"><span class="annottext">Boxity
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Located (Pat GhcRn)] -&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680868986"><span class="hs-identifier hs-var">hs_lpats</span></a></span><span> </span><span class="annot"><span class="annottext">[Located (Pat GhcRn)]
[LPat GhcRn]
</span><a href="#local-6989586621680868977"><span class="hs-identifier hs-var">pats</span></a></span><span>
</span><span id="line-1376"></span><span>
</span><span id="line-1377"></span><span>    </span><span class="annot"><a href="#local-6989586621680868987"><span class="hs-identifier hs-var">hs_pat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#SigPat"><span class="hs-identifier hs-type">SigPat</span></a></span><span> </span><span class="annot"><span class="annottext">XSigPat GhcRn
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680868976"><span class="annot"><span class="annottext">LPat GhcRn
</span><a href="#local-6989586621680868976"><span class="hs-identifier hs-var">pat</span></a></span></span><span> </span><span class="annot"><span class="annottext">HsPatSigType (NoGhcTc GhcRn)
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Located (Pat GhcRn) -&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680868990"><span class="hs-identifier hs-var">hs_lpat</span></a></span><span> </span><span class="annot"><span class="annottext">Located (Pat GhcRn)
LPat GhcRn
</span><a href="#local-6989586621680868976"><span class="hs-identifier hs-var">pat</span></a></span><span>
</span><span id="line-1378"></span><span>
</span><span id="line-1379"></span><span>    </span><span class="annot"><a href="#local-6989586621680868987"><span class="hs-identifier hs-var">hs_pat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Pat.html#ConPat"><span class="hs-identifier hs-type">ConPat</span></a></span><span> </span><span class="hs-special">{</span><span class="annot"><span class="annottext">pat_con :: forall p. Pat p -&gt; Located (ConLikeP p)
</span><a href="GHC.Hs.Pat.html#pat_con"><span class="hs-identifier hs-var">pat_con</span></a></span><span class="hs-glyph">=</span><span id="local-6989586621680868975"><span class="annot"><span class="annottext">Located (ConLikeP GhcRn)
</span><a href="#local-6989586621680868975"><span class="hs-identifier hs-var">con</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">pat_args :: forall p. Pat p -&gt; HsConPatDetails p
</span><a href="GHC.Hs.Pat.html#pat_args"><span class="hs-identifier hs-var">pat_args</span></a></span><span class="hs-glyph">=</span><span id="local-6989586621680868974"><span class="annot"><span class="annottext">HsConPatDetails GhcRn
</span><a href="#local-6989586621680868974"><span class="hs-identifier hs-var">ps</span></a></span></span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Located Name -&gt; HsConPatDetails GhcRn -&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680868973"><span class="hs-identifier hs-var">details</span></a></span><span> </span><span class="annot"><span class="annottext">Located Name
Located (ConLikeP GhcRn)
</span><a href="#local-6989586621680868975"><span class="hs-identifier hs-var">con</span></a></span><span> </span><span class="annot"><span class="annottext">HsConPatDetails GhcRn
</span><a href="#local-6989586621680868974"><span class="hs-identifier hs-var">ps</span></a></span><span>
</span><span id="line-1380"></span><span>
</span><span id="line-1381"></span><span>    </span><span class="annot"><a href="#local-6989586621680868987"><span class="hs-identifier hs-var">hs_pat</span></a></span><span> </span><span class="annot"><span class="annottext">Pat GhcRn
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-1382"></span><span>
</span><span id="line-1383"></span><span>    </span><span class="annot"><a href="#local-6989586621680868973"><span class="hs-identifier hs-type">details</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="annot"><a href="GHC.Types.Name.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Hs.Pat.html#HsConPatDetails"><span class="hs-identifier hs-type">HsConPatDetails</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.Name.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-1384"></span><span>    </span><span id="local-6989586621680868973"><span class="annot"><span class="annottext">details :: Located Name -&gt; HsConPatDetails GhcRn -&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680868973"><span class="hs-identifier hs-var hs-var">details</span></a></span></span><span> </span><span class="annot"><span class="annottext">Located Name
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Type.html#PrefixCon"><span class="hs-identifier hs-type">PrefixCon</span></a></span><span> </span><span id="local-6989586621680868972"><span class="annot"><span class="annottext">[LPat GhcRn]
</span><a href="#local-6989586621680868972"><span class="hs-identifier hs-var">ps</span></a></span></span><span class="hs-special">)</span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Located (Pat GhcRn)] -&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680868986"><span class="hs-identifier hs-var">hs_lpats</span></a></span><span> </span><span class="annot"><span class="annottext">[Located (Pat GhcRn)]
[LPat GhcRn]
</span><a href="#local-6989586621680868972"><span class="hs-identifier hs-var">ps</span></a></span><span>
</span><span id="line-1385"></span><span>    </span><span class="annot"><a href="#local-6989586621680868973"><span class="hs-identifier hs-var">details</span></a></span><span> </span><span id="local-6989586621680868971"><span class="annot"><span class="annottext">Located Name
</span><a href="#local-6989586621680868971"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Type.html#RecCon"><span class="hs-identifier hs-type">RecCon</span></a></span><span> </span><span id="local-6989586621680868970"><span class="annot"><span class="annottext">HsRecFields GhcRn (LPat GhcRn)
</span><a href="#local-6989586621680868970"><span class="hs-identifier hs-var">fs</span></a></span></span><span class="hs-special">)</span><span>      </span><span class="hs-glyph">=</span><span>
</span><span id="line-1386"></span><span>      </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680868969"><span class="hs-identifier hs-var">err_loc</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">[LPat GhcRn] -&gt; [IdP GhcRn]
forall p. CollectPass p =&gt; [LPat p] -&gt; [IdP p]
</span><a href="GHC.Hs.Utils.html#collectPatsBinders"><span class="hs-identifier hs-var">collectPatsBinders</span></a></span><span> </span><span class="annot"><span class="annottext">[Located (Pat GhcRn)]
[LPat GhcRn]
</span><a href="#local-6989586621680868968"><span class="hs-identifier hs-var">implicit_pats</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span class="hs-special">{</span><span class="hs-special">}</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">HsRecFields GhcRn (Located (Pat GhcRn)) -&gt; Maybe (Located Int)
forall p arg. HsRecFields p arg -&gt; Maybe (Located Int)
</span><a href="GHC.Hs.Pat.html#rec_dotdot"><span class="hs-identifier hs-var hs-var">rec_dotdot</span></a></span><span> </span><span class="annot"><span class="annottext">HsRecFields GhcRn (Located (Pat GhcRn))
HsRecFields GhcRn (LPat GhcRn)
</span><a href="#local-6989586621680868970"><span class="hs-identifier hs-var">fs</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-1387"></span><span>        </span><span class="annot"><span class="annottext">[(SrcSpan, [Name])] -&gt; [(SrcSpan, [Name])] -&gt; [(SrcSpan, [Name])]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">[Located (Pat GhcRn)] -&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680868986"><span class="hs-identifier hs-var">hs_lpats</span></a></span><span> </span><span class="annot"><span class="annottext">[Located (Pat GhcRn)]
</span><a href="#local-6989586621680868966"><span class="hs-identifier hs-var">explicit_pats</span></a></span><span>
</span><span id="line-1388"></span><span>
</span><span id="line-1389"></span><span>      </span><span class="hs-keyword">where</span><span> </span><span id="local-6989586621680868968"><span class="annot"><span class="annottext">implicit_pats :: [Located (Pat GhcRn)]
</span><a href="#local-6989586621680868968"><span class="hs-identifier hs-var hs-var">implicit_pats</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(GenLocated
   SrcSpan (HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn)))
 -&gt; Located (Pat GhcRn))
-&gt; [GenLocated
      SrcSpan (HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn)))]
-&gt; [Located (Pat GhcRn)]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn))
-&gt; Located (Pat GhcRn)
forall id arg. HsRecField' id arg -&gt; arg
</span><a href="GHC.Hs.Pat.html#hsRecFieldArg"><span class="hs-identifier hs-var hs-var">hsRecFieldArg</span></a></span><span> </span><span class="annot"><span class="annottext">(HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn))
 -&gt; Located (Pat GhcRn))
-&gt; (GenLocated
      SrcSpan (HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn)))
    -&gt; HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn)))
-&gt; GenLocated
     SrcSpan (HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn)))
-&gt; Located (Pat GhcRn)
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">GenLocated
  SrcSpan (HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn)))
-&gt; HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn))
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[GenLocated
   SrcSpan (HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn)))]
</span><a href="#local-6989586621680868964"><span class="hs-identifier hs-var">implicit</span></a></span><span>
</span><span id="line-1390"></span><span>            </span><span id="local-6989586621680868966"><span class="annot"><span class="annottext">explicit_pats :: [Located (Pat GhcRn)]
</span><a href="#local-6989586621680868966"><span class="hs-identifier hs-var hs-var">explicit_pats</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(GenLocated
   SrcSpan (HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn)))
 -&gt; Located (Pat GhcRn))
-&gt; [GenLocated
      SrcSpan (HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn)))]
-&gt; [Located (Pat GhcRn)]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn))
-&gt; Located (Pat GhcRn)
forall id arg. HsRecField' id arg -&gt; arg
</span><a href="GHC.Hs.Pat.html#hsRecFieldArg"><span class="hs-identifier hs-var hs-var">hsRecFieldArg</span></a></span><span> </span><span class="annot"><span class="annottext">(HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn))
 -&gt; Located (Pat GhcRn))
-&gt; (GenLocated
      SrcSpan (HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn)))
    -&gt; HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn)))
-&gt; GenLocated
     SrcSpan (HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn)))
-&gt; Located (Pat GhcRn)
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">GenLocated
  SrcSpan (HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn)))
-&gt; HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn))
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[GenLocated
   SrcSpan (HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn)))]
</span><a href="#local-6989586621680868963"><span class="hs-identifier hs-var">explicit</span></a></span><span>
</span><span id="line-1391"></span><span>
</span><span id="line-1392"></span><span>
</span><span id="line-1393"></span><span>            </span><span class="hs-special">(</span><span id="local-6989586621680868963"><span class="annot"><span class="annottext">[GenLocated
   SrcSpan (HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn)))]
</span><a href="#local-6989586621680868963"><span class="hs-identifier hs-var">explicit</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680868964"><span class="annot"><span class="annottext">[GenLocated
   SrcSpan (HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn)))]
</span><a href="#local-6989586621680868964"><span class="hs-identifier hs-var">implicit</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Either
   (GenLocated
      SrcSpan (HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn))))
   (GenLocated
      SrcSpan (HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn))))]
-&gt; ([GenLocated
       SrcSpan (HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn)))],
    [GenLocated
       SrcSpan (HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn)))])
forall a b. [Either a b] -&gt; ([a], [b])
</span><a href="../../base/src/Data.Either.html#partitionEithers"><span class="hs-identifier hs-var">partitionEithers</span></a></span><span> </span><span class="hs-special">[</span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680868961"><span class="hs-identifier hs-var">pat_explicit</span></a></span><span> </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">GenLocated
  SrcSpan (HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn)))
-&gt; Either
     (GenLocated
        SrcSpan (HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn))))
     (GenLocated
        SrcSpan (HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn))))
forall a b. a -&gt; Either a b
</span><a href="../../base/src/Data.Either.html#Left"><span class="hs-identifier hs-var">Left</span></a></span><span> </span><span class="annot"><span class="annottext">GenLocated
  SrcSpan (HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn)))
</span><a href="#local-6989586621680868960"><span class="hs-identifier hs-var">fld</span></a></span><span> </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">GenLocated
  SrcSpan (HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn)))
-&gt; Either
     (GenLocated
        SrcSpan (HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn))))
     (GenLocated
        SrcSpan (HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn))))
forall a b. b -&gt; Either a b
</span><a href="../../base/src/Data.Either.html#Right"><span class="hs-identifier hs-var">Right</span></a></span><span> </span><span class="annot"><span class="annottext">GenLocated
  SrcSpan (HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn)))
</span><a href="#local-6989586621680868960"><span class="hs-identifier hs-var">fld</span></a></span><span>
</span><span id="line-1394"></span><span>                                                    </span><span class="hs-glyph">|</span><span> </span><span class="hs-special">(</span><span id="local-6989586621680868959"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680868959"><span class="hs-identifier hs-var">i</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680868960"><span class="annot"><span class="annottext">GenLocated
  SrcSpan (HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn)))
</span><a href="#local-6989586621680868960"><span class="hs-identifier hs-var">fld</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span class="hs-glyph">..</span><span class="hs-special">]</span><span> </span><span class="annot"><span class="annottext">[Int]
-&gt; [GenLocated
      SrcSpan (HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn)))]
-&gt; [(Int,
     GenLocated
       SrcSpan (HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn))))]
forall a b. [a] -&gt; [b] -&gt; [(a, b)]
</span><a href="../../base/src/GHC.List.html#zip"><span class="hs-operator hs-var">`zip`</span></a></span><span> </span><span class="annot"><span class="annottext">HsRecFields GhcRn (Located (Pat GhcRn))
-&gt; [GenLocated
      SrcSpan (HsRecField' (FieldOcc GhcRn) (Located (Pat GhcRn)))]
forall p arg. HsRecFields p arg -&gt; [LHsRecField p arg]
</span><a href="GHC.Hs.Pat.html#rec_flds"><span class="hs-identifier hs-var hs-var">rec_flds</span></a></span><span> </span><span class="annot"><span class="annottext">HsRecFields GhcRn (Located (Pat GhcRn))
HsRecFields GhcRn (LPat GhcRn)
</span><a href="#local-6989586621680868970"><span class="hs-identifier hs-var">fs</span></a></span><span>
</span><span id="line-1395"></span><span>                                                    </span><span class="hs-special">,</span><span>  </span><span class="hs-keyword">let</span><span>  </span><span id="local-6989586621680868961"><span class="annot"><span class="annottext">pat_explicit :: Bool
</span><a href="#local-6989586621680868961"><span class="hs-identifier hs-var hs-var">pat_explicit</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-1396"></span><span>                                                              </span><span class="annot"><span class="annottext">Bool -&gt; (Located Int -&gt; Bool) -&gt; Maybe (Located Int) -&gt; Bool
forall b a. b -&gt; (a -&gt; b) -&gt; Maybe a -&gt; b
</span><a href="../../base/src/Data.Maybe.html#maybe"><span class="hs-identifier hs-var">maybe</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680868959"><span class="hs-identifier hs-var">i</span></a></span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&lt;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Int -&gt; Bool) -&gt; (Located Int -&gt; Int) -&gt; Located Int -&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Located Int -&gt; Int
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1397"></span><span>                                                                         </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsRecFields GhcRn (Located (Pat GhcRn)) -&gt; Maybe (Located Int)
forall p arg. HsRecFields p arg -&gt; Maybe (Located Int)
</span><a href="GHC.Hs.Pat.html#rec_dotdot"><span class="hs-identifier hs-var hs-var">rec_dotdot</span></a></span><span> </span><span class="annot"><span class="annottext">HsRecFields GhcRn (Located (Pat GhcRn))
HsRecFields GhcRn (LPat GhcRn)
</span><a href="#local-6989586621680868970"><span class="hs-identifier hs-var">fs</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-1398"></span><span>            </span><span id="local-6989586621680868969"><span class="annot"><span class="annottext">err_loc :: SrcSpan
</span><a href="#local-6989586621680868969"><span class="hs-identifier hs-var hs-var">err_loc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SrcSpan
-&gt; (Located Int -&gt; SrcSpan) -&gt; Maybe (Located Int) -&gt; SrcSpan
forall b a. b -&gt; (a -&gt; b) -&gt; Maybe a -&gt; b
</span><a href="../../base/src/Data.Maybe.html#maybe"><span class="hs-identifier hs-var">maybe</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Located Name -&gt; SrcSpan
forall l e. GenLocated l e -&gt; l
</span><a href="GHC.Types.SrcLoc.html#getLoc"><span class="hs-identifier hs-var">getLoc</span></a></span><span> </span><span class="annot"><span class="annottext">Located Name
</span><a href="#local-6989586621680868971"><span class="hs-identifier hs-var">n</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Located Int -&gt; SrcSpan
forall l e. GenLocated l e -&gt; l
</span><a href="GHC.Types.SrcLoc.html#getLoc"><span class="hs-identifier hs-var">getLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HsRecFields GhcRn (Located (Pat GhcRn)) -&gt; Maybe (Located Int)
forall p arg. HsRecFields p arg -&gt; Maybe (Located Int)
</span><a href="GHC.Hs.Pat.html#rec_dotdot"><span class="hs-identifier hs-var hs-var">rec_dotdot</span></a></span><span> </span><span class="annot"><span class="annottext">HsRecFields GhcRn (Located (Pat GhcRn))
HsRecFields GhcRn (LPat GhcRn)
</span><a href="#local-6989586621680868970"><span class="hs-identifier hs-var">fs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1399"></span><span>
</span><span id="line-1400"></span><span>    </span><span class="annot"><a href="#local-6989586621680868973"><span class="hs-identifier hs-var">details</span></a></span><span> </span><span class="annot"><span class="annottext">Located Name
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Type.html#InfixCon"><span class="hs-identifier hs-type">InfixCon</span></a></span><span> </span><span id="local-6989586621680868955"><span class="annot"><span class="annottext">LPat GhcRn
</span><a href="#local-6989586621680868955"><span class="hs-identifier hs-var">p1</span></a></span></span><span> </span><span id="local-6989586621680868954"><span class="annot"><span class="annottext">LPat GhcRn
</span><a href="#local-6989586621680868954"><span class="hs-identifier hs-var">p2</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Located (Pat GhcRn) -&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680868990"><span class="hs-identifier hs-var">hs_lpat</span></a></span><span> </span><span class="annot"><span class="annottext">Located (Pat GhcRn)
LPat GhcRn
</span><a href="#local-6989586621680868955"><span class="hs-identifier hs-var">p1</span></a></span><span> </span><span class="annot"><span class="annottext">[(SrcSpan, [Name])] -&gt; [(SrcSpan, [Name])] -&gt; [(SrcSpan, [Name])]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">Located (Pat GhcRn) -&gt; [(SrcSpan, [Name])]
</span><a href="#local-6989586621680868990"><span class="hs-identifier hs-var">hs_lpat</span></a></span><span> </span><span class="annot"><span class="annottext">Located (Pat GhcRn)
LPat GhcRn
</span><a href="#local-6989586621680868954"><span class="hs-identifier hs-var">p2</span></a></span><span>
</span><span id="line-1401"></span></pre></body></html>